标签: virtual-destructor
为什么我们可以拥有虚拟析构函数而不是虚拟构造函数?
答案 0 :(得分:1)
构造函数链可以在编译时确定,因为您总是从最特定的类中使用new ClassName()。
new ClassName()
但是,如果使用多态,则可能会在可能的父类上调用析构函数,因此您无法在编译时知道从哪里开始链。您需要一个虚拟函数来始终调用正确的函数(或者您最终会在最具体的类中使用可能未清理的资源)。