多层继承中的虚拟关键字

Fra*_*ank 4 c++ polymorphism

我有一个继承链,其中A类公开继承自B类,而B类又公开继承自C类.C类的析构函数标记为"虚拟".是否有人反对将B类和A类的析构者标记为虚拟?或者在这些情况下是否需要支付性能/内存损失?

P0W*_*P0W 6

如果基类析构函数被标记为虚拟,那么Derived类析构函数也是隐式虚拟的,您不需要将其明确指定为虚拟.没有性能或内存损失

所以在你的例子中,如果C有一个虚拟析构函数BA继承了析构函数的"虚拟"