如果你的基类有一个虚拟析构函数,你自己的析构函数就会自动变成虚拟的

if your base class has a virtual destructor, your own destructor is automatically virtual

本文关键字:析构函数 虚拟 基类 有一个 如果 你自己 自己的      更新时间:2023-10-16

我知道标题的语句是正确的。

那么正则函数呢?

例如

class Father {
    virtual void foo() {...;}
}
class Son : public Father {
    void foo() {...;}
}
class GrandSon : public Son {
    void foo() {...;}
}

孙子可以推翻儿子的foo吗?一般来说,如果你的基类有一个虚拟函数,那么派生类的相应函数就自动是虚拟的?这是真的吗?

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

C++2011:10.3虚拟函数

2:如果虚拟成员函数vf在类Base和类Derived中声明,直接或间接派生自Base,则声明具有与Base::vferived::vf也是虚拟的(无论是否如此声明)。。。