繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM