首页 > 解决方案 > 多层继承中的虚拟关键字

问题描述

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

标签: c++polymorphism

解决方案


如果基类析构函数标记为虚拟,则派生类析构函数也是隐式虚拟的,您无需显式将其指定为虚拟。没有性能或内存损失

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


推荐阅读