小编DDG*_*DDG的帖子

纯抽象类的虚拟析构函数

根据我在这里和 stackoverflow 上的其他链接上找到的内容,如果我们计划多态地使用它,我们应该始终在基类中定义一个虚拟析构函数。我想知道这个规则是否有例外。

我见过没有为纯抽象基类定义虚拟析构函数的生产代码,并且在 cppcon 2014 视频“不接受访客”之一中,大约 10:06 定义的 BoolExp 结构是一个纯抽象类,没有虚拟析构函数。

所以对于像这样定义的纯抽象类

  class Base {
      public:
         virtual foo() = 0;
         virtual bar() = 0;
     }
Run Code Online (Sandbox Code Playgroud)

我的问题是,我们绝对必须为“基”类定义一个虚拟析构函数,即使它确实有任何数据成员?虚拟析构函数规则有任何例外吗?

提前致谢。

最好的,RG

c++ abstract-class virtual-destructor

5
推荐指数
1
解决办法
3253
查看次数

标签 统计

abstract-class ×1

c++ ×1

virtual-destructor ×1