从析构函数间接调用虚拟函数
-
27-10-2019 - |
题
让我声明以下内容:我对构造函数或析构函数中的虚函数调用有清楚的了解。
在下面的代码中,我试图仅出于实验目的避免使用虚拟析构函数。
现在我的问题是:
主要是,销毁乐趣的调用会调用正确的虚函数。 我希望对Destroy Function的任何调用都应该调用正确的虚拟乐趣。
但是与Base析构函数调用中相同的Destroy函数是Base虚拟函数。
这与静态绑定或编译器优化有关吗? 通用标签
。 通用标签
。 通用标签
解决方案
在析构函数中,this
的动态类型是当前类的动态类型,而不是对象的原始动态类型。参见例如 http://www.artima.com/cppsource/nevercall.html 。
不隶属于 StackOverflow