【发布时间】:2021-11-20 08:26:52
【问题描述】:
如果我是正确的,默认的析构函数总是隐式声明的,除非用户声明它。根据cppreference:
通过指向基类的指针删除对象会调用未定义的行为,除非基类中的析构函数是虚拟的
现在,考虑这个例子:
struct B {};
struct D : B {};
隐式声明的析构函数B::~B() 是虚拟的吗?如果不是,我应该在使用继承时总是声明一个虚拟析构函数吗?
【问题讨论】:
标签: c++11 inheritance virtual destructor