gpt4 book ai didi

c++ - 具有 vector 成员的基类

转载 作者:行者123 更新时间:2023-11-28 01:47:17 24 4
gpt4 key购买 nike

我正在尝试创建一个抽象基类,我希望派生类实现 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. 不允许在数据声明中使用“虚拟”
  2. '虚拟'是不允许的。

我想做的是:

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

我的做法是否正确?提前致谢!

注意:我之前没有使用 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;

}

关于c++ - 具有 vector<int> 成员的基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44535764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com