基 class 与向量 <int> 成员

Base class with a vector<int> member

我正在尝试创建一个抽象基础 class,我打算派生 classes 来实现 vector<int> 成员。我的问题是如果我尝试这样做:

class BaseClass
{
public:
    virtual int GetCount() = 0;
    virtual vector<int> ChildData;
}

class CID1 : public BaseClass
{
public:
    int GetCount()
    {
        return 3;
    }

    //and so on.....
}

我明白了

  1. 'virtual' 数据声明不允许
  2. 'virtual' 不允许。

我想做的是:

  1. 让我的 child classes 覆盖向量,因为它们将包含不同数量的向量元素
  2. 能够遍历包含声明的 child classes 地址的 BaseClass* 数组,以及向量数据的第二个循环。

我做的对吗?提前致谢!

注意:我之前没有使用 C++ 进行编码的经验。

Am I doing it the right way?

没有

正如编译器让您知道的那样,您可以有 virtual 个成员函数,但不能有 virtual 个成员变量。

将成员变量更改为成员函数,并确保在派生的 类.

中正确实现它们
class BaseClass
{
   public:
      virtual int GetCount() = 0;
      virtual vector<int>& GetChildData() = 0;
}

class CID1 : public BaseClass
{
   public:

      // virtual keyword is not necessary here
      // but helps with understanding code.
      virtual int GetCount()
      {
         return 3;
      }

      virtual vector<int>& GetChildData()
      {
         return data;
      }

   private:
      vector<int> data;

}