E2352 抽象クラス 'class' の変数は作成できない (C++)

提供: RAD Studio
移動先: 案内検索

コンパイラのエラーと警告(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