jef*_*yer 26 c++ virtual-destructor
为什么C++默认情况下不会为至少有一个其他虚函数的类创建析构函数? 在这种情况下,添加一个虚拟析构函数不需要任何费用,并且没有一个(几乎?)总是一个bug.C++ 0x会解决这个问题吗?
Ker*_* SB 20
你不支付你不需要的东西.如果永远不会通过基指针删除,则可能不需要间接析构函数调用的开销.
也许你认为仅仅存在vtable是唯一的开销.但是,每个单独的函数调度也必须考虑,如果我想让我的析构函数直接调用,我应该被允许这样做.
如果您确实删除了一个基本指针并且该类具有虚拟方法,那么编译器会警告您,这是很好的.
编辑:让我在这里拉出Simon的优秀评论:查看关于为析构函数生成的代码的SO问题.正如您所看到的,还需要考虑代码膨胀开销.
归档时间:
14 年,7 月 前
查看次数:
3737 次
最近记录:
12 年,7 月 前