[英]Pure Virtual Destructor with Default Keyword
是否可以将析构函数声明为纯虚拟并使用default关键字? 例如,我似乎无法使代码像这样工作:
class MyClass
{
public:
// Is there a way to combine pure virtual and default?
virtual ~ MyClass() = 0,default;
};
人们当然可以稍后做:
MyClass::~ MyClass() = default;
此外,如果析构函数不是纯虚拟的,则默认关键字在声明后面会起作用。
没有。
正如您所示,您必须编写一个单独的定义并将其default
定义。
纯指定符的存在排除了在同一位置存在定义,即使该定义只是a = default
。
不,这是不可能的。
通过使用= default
说明符声明成员函数,您将提供函数定义。
从C ++ 14标准(N3936)的工作草案:
§10.4注意:函数声明不能同时提供纯指定符和定义
https://github.com/cplusplus/draft/raw/b7b8ed08ba4c111ad03e13e8524a1b746cb74ec6/papers/N3936.pdf
这个问题有点不起作用,因为无论如何你只能有一个析构函数 。 为什么需要添加default
说明符?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.