2016-03-22 18 views
-2

私はサブクラスを格納したいベクトルを持っています。私が直面している問題は、それが私にエラーを与えているということです。 私はリファレンスとしてhereに見えたが、今、私はこのエラーを取得しています:サブクラスを含むクラスベクトルを作成する

Error: "Subclass::Subclass" (declared at...) is inaccessible.

私のコードは次のとおりです。classため

class SuperClass 
{ 
public: 
    SuperClass() {} 
    ~SuperClass() {} 

}; 
class SubClass : public SuperClass 
{ 
    SubClass() {} //there is no .cpp 
    ~SubClass() {} 
}; 

int main() 
{ 
    std::vector<SuperClass*> superClass; 
    superClass.push_back(new SubClass()); 
    return 0; 
} 
+0

読者が試すことができる**完全であるが最小限の**例を投稿してください。 –

+1

しかし、コンパイラの診断では「アクセスできない」と言われています。 'class'のメンバーはデフォルトで' private'ですので、コンストラクターはアクセスできません。だから、 'struct'キーワードを使うか、ここではコンストラクタ定義の前に' public: 'アクセス指定子を追加するか、クラス名' Program'を 'friend'にしてください。 –

答えて

1

デフォルトのアクセスタイプはprivateです。したがって、Subclassのコンストラクタとデストラクタは両方ともprivateです。それらの前にpublicアクセス指定子を追加します。

class Subclass : public SuperClass{ 

    // Add this 
    public: 

     SubClass() {} //there is no .cpp 
     ~SubClass() {} 
    }; 
+0

それは働いた。さて、私はアクセスタイプを忘れてしまった。 –

関連する問題