到目前为止,这是我的头文件代码的一部分:
class Class
{
public:
Class();
void addSmallerClassToVector(int i1, int i2);
vector<SmallerClass>* listofClasses;
};
void Class::addSmallerClassToVector(int i1, int i2)
{
SmallerClass* sC = new SmallerClass(i1, i2);
listofClasses.push_back(sC);
}
SmallerClass
只是一个简单的类,其中包含两个int值。但是,此代码在listofClasses.push_back(sC);
行上生成错误。我也尝试使用
.insert()
,但是存在相同的问题。我尝试使用->
而不是.
之类的方法,但是错误表明这与listofClasses
没有类型或其他内容有关。我想向
Class
类中已经存在的向量添加一个类。我该怎么做呢? 最佳答案
您可以将向量设置为存储指针:
vector<SmallerClass*> listofClasses;
或者您可以更改方法来执行以下操作:
SmallerClass sC(i1, i2);
listofClasses.push_back(sC);
您所做的被声明为指向持有SmallerClass的向量的指针。
vector<SmallerClass>* listOfClasses;
因此,在使用它时,声明中甚至没有初始化。
您还可以在构造函数中执行以下操作:
listOfClasses = new vector<SmallerClass>();
然后,您必须对这些方法使用
->
运算符。但也请注意其他提到的问题。