纯虚拟默认析构函数

时间:2014-03-21 04:14:12

标签: c++11

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

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

1 个答案:

答案 0 :(得分:1)

当派生类的对象被销毁时,基类的析构函数始终显式调用。

因此,如果未定义,则会出现链接错误。