0

純粋な仮想デストラクタを作成して、クラスを抽象化して、ctor 以外のメソッドを含まないようにしています。私はヘッダーのみの実装としてこれを行っています

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

virtual ~abstractSchema(){} = 0;上記の例のように定義と実装を分割するのではなく、1 行で宣言および定義できるようにする(違法) のような構文糖衣はありますか?

4

2 に答える 2

3

これはあなたが得ることができる限り近いです:

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

抽象的ではありませんが、それ自体ではインスタンス化できないため、ニーズを満たす可能性があります。

于 2013-04-26T12:55:58.897 に答える
-1

あなたはできる:

struct abstractSchema
{
    virtual ~abstractSchema() = 0 {}
};

標準準拠のコンパイラについては不明ですが、MSVC (2010) はこのコードを問題なくコンパイルします。

于 2013-04-26T12:56:16.027 に答える