c++ - 析构函数上的虚拟传播
问题描述
我知道这会virtual
传播到派生类方法,并且可以选择在派生类的方法声明上放置关键字,并且我知道我必须将其标记为virtual
基类的析构函数,以便进行多态破坏,但是我想知道派生类的默认析构函数是否继承自基类virtual
的虚拟析构函数,所以我必须在派生类上显式编写它。
例子:
class A{
public:
virtual ~A() override = default;
}
class B: public A{
public:
// have i to write this or it's already what the compiler get as default?
virtual ~B() override = default;
}
解决方案
尽管派生类的析构函数与基类的析构函数名称不同,但它会覆盖基类析构函数。就像任何其他覆盖一样,如果它覆盖的是虚拟的,它就是虚拟的。
推荐阅读
- java - 从 SD 卡播放视频并使用 videoView 循环播放视频
- excel - Excel公式如果不是空白则为零
- c++ - CRTP 在基本构造函数中调用子虚拟覆盖
- vba - Redim 的类型不匹配
- proxy - 带代理的 Nifi GetTwitter 处理器
- python - 表中没有预期的 Python 返回值
- .htaccess - htaccess - 如果不是来自某些域,则阻止查询字符串
- tensorflow - 在急切模式下运行元数据
- swift - swift中表格视图中的单个单元格选择
- javascript - 匹配对象数组中的 2 个属性的值并根据第三个属性的值过滤匹配项