让我声明以下内容:我对构造函数或析构函数中的虚函数调用有清楚的了解。

在下面的代码中,我试图仅出于实验目的避免使用虚拟析构函数。

现在我的问题是:

主要是,销毁乐趣的调用会调用正确的虚函数。 我希望对Destroy Function的任何调用都应该调用正确的虚拟乐趣。

但是与Base析构函数调用中相同的Destroy函数是Base虚拟函数。

这与静态绑定或编译器优化有关吗? 通用标签

通用标签

通用标签

有帮助吗?

解决方案

在析构函数中,this的动态类型是当前类的动态类型,而不是对象的原始动态类型。参见例如 http://www.artima.com/cppsource/nevercall.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top