能否将析构函数声明为纯虚函数并使用默认关键字?例如,我似乎无法使以下代码正常工作:
class MyClass
{
public:
// Is there a way to combine pure virtual and default?
virtual ~ MyClass() = 0,default;
};
当然,稍后可以执行以下操作:
MyClass::~ MyClass() = default;
此外,如果析构函数不是纯虚函数,则在声明后使用默认关键字是有效的。
能否将析构函数声明为纯虚函数并使用默认关键字?例如,我似乎无法使以下代码正常工作:
class MyClass
{
public:
// Is there a way to combine pure virtual and default?
virtual ~ MyClass() = 0,default;
};
当然,稍后可以执行以下操作:
MyClass::~ MyClass() = default;
编号。
你需要编写一个独立的定义,并将其设为默认值,正如你所展示的那样。
即使该定义只是一个= default
,纯粹的指定符的存在也排除了在同一位置存在定义的可能性。
https://github.com/cplusplus/draft/raw/b7b8ed08ba4c111ad03e13e8524a1b746cb74ec6/papers/N3936.pdf
N4140
中。 - Shafik Yaghmour这个问题有点无从下手,因为你只能有一个析构函数。你为什么需要添加default
指定符呢?
default
的东西吗? - juanchopanza
{}
的类,没有任何变化。 - Nikos Athanasiou