【问题标题】:if your base class has a virtual destructor, your own destructor is automatically virtual如果你的基类有一个虚拟析构函数,你自己的析构函数自动是虚拟的
【发布时间】:2012-03-26 21:02:01
【问题描述】:

我知道标题的陈述是真的。

常规函数呢?

例如

class Father {

    virtual void foo() {...;}

}

class Son : public Father {

    void foo() {...;}

}

class GrandSon : public Son {

    void foo() {...;}

}

GrandSon 可以覆盖 Son 的 foo 吗?一般来说,如果你的基类有虚函数,那么派生类对应的函数就自动虚了? 这是真的吗?

【问题讨论】:

标签: c++ polymorphism


【解决方案1】:

是的,在 C++ 中,派生类“继承”了所有方法的虚拟方面——不仅仅是析构函数。

【讨论】:

    【解决方案2】:

    C++ 2011:10.3 虚函数

    2:如果在Base类和Derived类中声明了虚成员函数vf,则直接或间接派生自Base,一个成员函数 vf,与 Base 具有相同的名称、参数类型列表、cv-qualification 和 ref-qualifier(或不存在): :vf 被声明了,那么 Derived::vf 也是虚拟的(不管是不是这样声明的)...

    【讨论】:

      猜你喜欢
      • 2021-08-22
      • 2012-06-26
      • 2012-04-13
      • 2012-04-18
      • 2018-06-29
      • 2019-04-20
      • 2013-07-06
      • 2011-08-12
      • 2011-03-21
      相关资源
      最近更新 更多