我正在制作一个纯粹的虚拟析构函数,以强制将一个类抽象为除ctor之外不包含任何方法的类。我这样做是作为仅标头的实现

struct abstractSchema
{
    abstractSchema(...): ... { ... }
    virtual ~abstractSchema() = 0;
};
inline abstractSchema::~abstractSchema(){}


是否有任何语法糖(如(非法)virtual ~abstractSchema(){} = 0;)可以让我在一行上进行声明和定义,而不必像上面的示例中那样拆分定义和实现?

最佳答案

这与您所获得的尽可能接近:

struct abstractSchema
{
    virtual ~abstractSchema(){}
    protected: abstractSchema(...): ... { ... }
};


它不是抽象的,但是它本身无法实例化,因此可能满足您的需求。

关于c++ - 在一行中声明并实现纯虚拟析构函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16236940/

10-09 05:59