我正在制作一个纯虚拟析构函数来强制一个类是抽象的,除了ctor之外不包含任何方法。我这样做只是一个标题实现
struct abstractSchema
{
abstractSchema(...): ... { ... }
virtual ~abstractSchema() = 0;
};
inline abstractSchema::~abstractSchema(){}
是否有任何语法糖(非法)virtual ~abstractSchema(){} = 0;
允许我在一行上声明和定义,而不是像上面的例子中那样拆分定义和实现?
答案 0 :(得分:3)
尽可能接近:
struct abstractSchema
{
virtual ~abstractSchema(){}
protected: abstractSchema(...): ... { ... }
};
它不是抽象的,但它不能自己实例化,因此可能满足您的需求。
答案 1 :(得分:-1)
你可以:
struct abstractSchema
{
virtual ~abstractSchema() = 0 {}
};
不确定符合标准的编译器,但MSVC(2010)编译此代码就好了。