我理解我们应该在基类中使用虚拟析构函数来确保正确的资源处理,因为它可以保证在销毁对象时会监视继承链并调用所有父析构函数。话虽这么说,当基类和任何子类都只使用默认的析构函数时,我们还需要基类中的虚拟析构函数吗?例如:
class Printable {
virtual std::string print();
};
class A : public Printable {
int foo;
bool bar;
std::string print() override;
}
class B : public Printable {
std::vector<int> foo;
std::string print() override;
}
没有管理资源,并且所有析构函数都是隐式默认的。是否仍然建议在Printable
?