E2352 抽象クラス 'class' の変数は作成できない (C++)
抽象クラス(純粋仮想関数を持つ)を直接使用することはできません。派生元としてだけ使用できます。
抽象基本クラスを継承し,派生クラスのインスタンスを生成する場合は,基本クラスの各純粋仮想関数を宣言どおりにオーバーライドする必要があります。
例を示します。
class A {
public:
virtual myex( int ) = 0;
virtual twoex( const int ) const = 0;
};
class B : public A {
public:
myex( int );
twoex( const int );
};
B b; // エラー
クラスの const オブジェクトで動作する仮想関数 twoex をオーバーライドしてないため,このエラーが発生します。const 以外のオブジェクトで動作する新しい関数を作成しています。次のコードはコンパイルされます。
class A {
public:
virtual myex( int ) = 0;
virtual twoex( const int ) const = 0;
};
class B : public A {
public:
myex( int );
twoex( const int ) const;
};
B b; // OK