在C++ 11中,我们可以声明一个自动生成的析构函数:
struct X {
virtual ~X() = default;
};
Run Code Online (Sandbox Code Playgroud)
此外,我们可以声明析构函数是纯虚拟的:
struct X {
virtual ~X() = 0;
};
Run Code Online (Sandbox Code Playgroud)
是我的问题:要如何声明析构函数都自动生成和纯虚?看起来以下语法不正确:
struct X {
virtual ~X() = 0 = default;
};
Run Code Online (Sandbox Code Playgroud)
这两个都不是:
struct X {
virtual ~X() = 0, default;
};
Run Code Online (Sandbox Code Playgroud)
也不是这个:
struct X {
virtual ~X() = 0 default;
};
Run Code Online (Sandbox Code Playgroud)
编辑:对问题的目的进行一些澄清.基本上我想要一个空类是不可实例化的基类,但派生类是可实例化的,那么该类必须具有纯虚拟析构函数.但另一方面,我不想在.cpp文件中提供定义.所以我需要某种相当于的机制default.我想知道是否有人有想法解决这个问题.
Mat*_* M. 47
为了定义纯虚方法,您需要从声明中单独定义.
因此:
struct X {
virtual ~X() = 0;
};
X::~X() = default;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6442 次 |
| 最近记录: |