<分区>
根据我的发现here在 stackoverflow 上的其他链接上,如果我们计划以多态方式使用它,我们应该始终在基类中定义一个虚拟析构函数。我想知道这条规则是否有异常(exception)。
我在 cppcon 2014 视频之一中看到了没有为纯抽象基类定义虚拟析构函数的生产代码 Accept no visitor ,大约 10:06 定义的 BoolExp 结构是一个纯抽象类,没有虚拟析构函数。
所以对于这样定义的纯抽象类
class Base {
public:
virtual foo() = 0;
virtual bar() = 0;
}
我的问题是我们绝对必须为“基”类定义一个虚拟析构函数,即使它确实有任何数据成员?虚拟析构函数规则是否有任何异常(exception)?
提前致谢。
最好的, RG