创建一个包含子类的类向量

时间:2016-03-22 04:50:54

标签: c++ visual-studio subclass declaration stdvector

我有一个我想存储子类的向量。我面临的问题是它给了我一个错误。 我看了here作为参考,但现在我收到了这个错误:

  

错误:“Subclass :: Subclass”(在...处声明)无法访问。

我的代码如下:

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;
}

1 个答案:

答案 0 :(得分:1)

class的默认访问类型为private。因此,Subclass的构造函数和析构函数都是private。在它们之前添加public访问说明符。

class Subclass : public SuperClass{

     // Add this
     public:

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