c-默认虚拟目录

让我们假设我有两个类:

class Base{};

class Derived: public Base{};

没有人可以举报,在这种情况下,如果我声明变量:

Base b;
Derived d;

我的编译器将为我生成d’tors,我的问题是,b和d的默认d’tors是否为虚拟?

最佳答案

my question is, the d’tors of the b and d will be virtual or not

不,他们不会.如果需要虚拟析构函数,则必须定义自己的析构函数,即使其实现与编译器提供的实现完全相同:

class Base {
  public:
    virtual ~Base() {}
};

转载注明原文:c-默认虚拟目录 - 代码日志