【发布时间】:2011-01-12 23:49:01
【问题描述】:
如果我有一个带有虚拟析构函数的基类。是否也有派生类来声明虚析构函数?
class base {
public:
virtual ~base () {}
};
class derived : base {
public:
virtual ~derived () {} // 1)
~derived () {} // 2)
};
具体问题:
- 1) 和 2) 是否相同? 2) 是因为它的基础而自动虚拟还是“停止”虚拟?
- 派生的析构函数如果无关的话可以省略吗?
- 声明派生析构函数的最佳实践是什么?声明它是虚拟的、非虚拟的还是尽可能省略它?
【问题讨论】:
标签: c++ inheritance virtual-destructor