【发布时间】:2012-01-31 15:25:24
【问题描述】:
据我所知,任何被指定为具有子类的类都应该用虚拟析构函数声明,这样在通过指针访问它们时可以正确地销毁类实例。
但是为什么甚至可以用非虚拟析构函数声明这样的类呢?我相信编译器可以决定何时使用虚拟析构函数。那么,这是 C++ 设计疏忽,还是我遗漏了什么?
【问题讨论】:
-
+1。我想问一个类似的问题:如果一个基类有一个
virtual函数,那么为什么我们仍然需要将析构函数设为虚拟?为什么不编译器自己把它变成/认为它是虚拟的? -
派生(子类)析构函数时,什么都不做。
标签: c++ language-design virtual-destructor