美文网首页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