美文网首页C++ 杂记
C++ 重载、隐藏和重写(或者称为覆盖)

C++ 重载、隐藏和重写(或者称为覆盖)

作者: 赵者也 | 来源:发表于2017-10-25 21:59 被阅读3次

    1.当函数 foo 在同一个作用域中存在两个或者多个版本(具有不同签名)时,就称 foo 函数被“重载”了;

    2.当基类中的一个 virtual 函数在派生类中也存在,并且它们具有相同的签名和返回类型时,就称派生类中的版本“重写”(或“覆盖”)了基类中的版本;

    3.派生类中的成员函数,会隐藏基类中与之同名的全部函数。如果出现这种情况,则:

    • a. 只有派生类的函数可以被直接调用
    • b. 必须要使用类作用域解析运算符“::”显示地调用基类函数。
    class A{
    pubilc:
            A(int a,int b);
            ...
            virtual void display();
            virtual QString toString() const;
            virtual QString toString(char ch);        //    函数重载
            ...
    };
    
    class B: public A{
    public:
            ...
            QString toString() const;    //重写(覆盖)积累方法并隐藏toString(char)。
            void display(int n);            //没有重写方法,但是隐藏了全部的A::display()方法。
    };
    

    相关文章

      网友评论

        本文标题:C++ 重载、隐藏和重写(或者称为覆盖)

        本文链接:https://www.haomeiwen.com/subject/zobcpxtx.html