C++ 杂记

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

2017-10-25  本文已影响3人  赵者也

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

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

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

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()方法。
};
上一篇下一篇

猜你喜欢

热点阅读