基 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.....
}
我明白了
- 'virtual' 数据声明不允许
- 'virtual' 不允许。
我想做的是:
- 让我的 child classes 覆盖向量,因为它们将包含不同数量的向量元素
- 能够遍历包含声明的 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;
}
我正在尝试创建一个抽象基础 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.....
}
我明白了
- 'virtual' 数据声明不允许
- 'virtual' 不允许。
我想做的是:
- 让我的 child classes 覆盖向量,因为它们将包含不同数量的向量元素
- 能够遍历包含声明的 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;
}