0

为什么我们可以有一个虚拟析构函数而不是虚拟构造函数?

4

1 回答 1

1

构造函数链可以在编译时确定,因为您new ClassName()总是使用最具体的类。

但是,如果您使用多态性,您可能会在可能的父类上调用析构函数,因此您无法在编译时知道从哪里开始链。您需要一个虚函数来始终调用正确的函数(否则您最终会在最特定的类中获得可能未清理的资源)。

于 2011-10-11T16:55:09.933 回答