【发布时间】:2010-11-10 04:32:41
【问题描述】:
默认析构函数可以自动生成为虚拟析构函数吗?
如果我定义了一个基类但没有默认析构函数,是否有默认的虚拟析构函数 自动生成?
【问题讨论】:
-
顺便问一下,什么是默认析构函数?还有不止一种析构函数吗?
-
@yossi1981:如果你没有在类中声明析构函数,那么编译器会为你插入一个析构函数。在某些不寻常的情况下可能会出错,这个“默认析构函数”与您定义的“~MyClass() {}”相同。
-
@onebyone: 准确地说是:
public: ~MyClass() {}- 尽管默认情况下类成员是私有的。 -
带有非虚拟析构函数的基类和带有虚拟析构函数的派生类感觉像是一个内置的设计缺陷。
标签: c++ destructor