相关疑难解决方法(0)

虚拟析构函数是继承的吗?

如果我有一个带有虚拟析构函数的基类.有一个派生类来声明一个虚拟析构函数吗?

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

class derived : base {
public:
    virtual ~derived () {} // 1)
    ~derived () {}  // 2)
};
Run Code Online (Sandbox Code Playgroud)

具体问题:

  1. 1)和2)是一样的吗?是2)因为它的基础自动虚拟还是"停止"虚拟?
  2. 如果没有任何关系,可以省略派生的析构函数吗?
  3. 声明派生析构函数的最佳实践是什么?如果可能,将其声明为虚拟,非虚拟或省略?

c++ inheritance virtual-destructor

75
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×1

inheritance ×1

virtual-destructor ×1