具有默认关键字的纯虚拟析构函数

Chr*_*son 3 c++ virtual-functions c++11

是否可以将析构函数声明为纯虚拟并使用default关键字?例如,我似乎无法使代码像这样工作:

class MyClass
{
public:
  // Is there a way to combine pure virtual and default?
  virtual ~ MyClass() = 0,default;
};
Run Code Online (Sandbox Code Playgroud)

人们当然可以稍后做:

MyClass::~ MyClass() = default;
Run Code Online (Sandbox Code Playgroud)

此外,如果析构函数不是纯虚拟的,则默认关键字在声明后面会起作用.

Lig*_*ica 7

没有.

default正如您所示,您必须在那里写一个单独的定义.

一个的存在纯说明符排除了定义的存在下,在相同的位置,即使在该定义只是一个= default.