• C++ Virtual


    摘自:http://www.cnblogs.com/xd502djj/archive/2010/09/22/1832912.html

    namespace QCAR
    {
    
    /// Area is the base class for 2D shapes used in Vuforia
    class QCAR_API Area
    {
    public:
        enum TYPE {
            RECTANGLE,
            RECTANGLE_INT,
            INVALID
        };
    
        virtual TYPE getType() const = 0;
        
        virtual ~Area();
    
    private:
        Area& operator=(const Area& other);
    };
    
    } // namespace QCAR

    一、看完博主写的Virtual这个关键词,做一下笔记:

    1.在基类中加入Virtual关键字的函数是虚拟函数!(例如getType,声明时默认返回值const为0);

    2.OO机制中多态性的体现;

    二、关于博主针对重载和覆盖的知识点,我再做一下笔记:

    1.重载的几个函数必须是属于同一个类;

     覆盖的几个函数必须是有继承关系的不同类中。

    2.重载的几个函数必须函数名相同,参数不同、返回值随意;

       覆盖的几个函数必须函数名相同、参数相同、返回值相同。

    3.重载和Virtual没有任何关系,加和不加都不影响重载的作用;

       覆盖的函数前必须加入Virtual关键字。

    三、博主针对C++的隐藏规则的笔记

    1.如果派生类的函数与基类的函数同名,但是参数不同,此时,无论有无Virtual关键字,基类的函数将被隐藏。

    2.如果派生类的函数和基类的函数同名,并且参数相同,此时,如果没有Virtual关键字,基类的函数被隐藏。

    最后,求看官指导!!!!!!

    只有在通过基类指针引用间接指向派生类子类型时多态性才会起作用

  • 相关阅读:
    CSS 兼容 总结
    IF IE
    取消chrome浏览器下input和textarea的默认样式
    左右浮动边距为0,中间间隔一定
    标题右边10px位置紧跟发布时间
    两款CSS3样式可视化在线生成工具
    文字截取,多余文字用省略号(...)代替
    O
    N
    M
  • 原文地址:https://www.cnblogs.com/R0SS/p/5082648.html
Copyright © 2020-2023  润新知