如果您的基类有一个虚拟析构函数,那么您自己的析构函数将自动为虚拟

时间:2012-03-26 21:02:02

标签: c++ polymorphism

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

常规功能怎么样?

例如

class Father {

    virtual void foo() {...;}

}

class Son : public Father {

    void foo() {...;}

}

class GrandSon : public Son {

    void foo() {...;}

}

GrandSon可以覆盖Son的foo吗?通常,如果您的基类具有虚函数,派生类的相应函数会自动虚拟吗? 这是真的吗?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

C ++ 2011:10.3虚函数

2:如果虚拟成员函数 vf 在类基础和类派生中声明,则直接或间接来自< strong> Base ,成员函数 vf Base:具有相同的名称,parameter-type-list,cv-qualification和ref-qualifier(或不存在相同的内容): :vf 被声明,然后 Derived :: vf 也是虚拟的(是否声明)......