【问题标题】:Pure virtual default destructor [duplicate]纯虚拟默认析构函数[重复]
【发布时间】:2014-03-21 04:14:12
【问题描述】:

我发现自己每次编写基本接口时都会做的一件事是声明和定义一个纯虚拟析构函数。为什么 C++11 不允许默认定义纯虚析构函数?

struct Ibase
{
    virtual Ibase* basefun1() = 0;
    virtual ~Ibase() = 0 = default;
};

【问题讨论】:

    标签: c++11


    【解决方案1】:

    基类的析构函数总是在派生类的对象被销毁时显式调用。

    所以如果没有定义,就会出现链接错误。

    【讨论】:

      猜你喜欢
      • 2012-07-14
      • 1970-01-01
      • 2019-12-08
      • 2012-11-13
      • 2014-01-30
      • 2010-10-24
      • 2017-04-21
      • 2021-12-09
      • 2016-03-26
      相关资源
      最近更新 更多