在 C++11 中,我们可以声明一个自动生成的析构函数:
struct X {
virtual ~X() = default;
};
此外,我们可以将析构函数声明为纯虚函数:
struct X {
virtual ~X() = 0;
};
我的问题是:如何声明析构函数既是自动生成的又是纯虚拟的?看起来下面的语法不正确:
struct X {
virtual ~X() = 0 = default;
};
这也不是:
struct X {
virtual ~X() = 0, default;
};
也不是这个:
struct X {
virtual ~X() = 0 default;
};
编辑:关于问题目的的一些澄清。基本上我希望一个空类是不可实例化的基类,但派生类是可实例化的,那么该类必须有一个纯虚析构函数。但另一方面,我不想在 .cpp 文件中提供定义。所以我需要某种与default
. 我想知道是否有人有解决问题的想法。