我有一个由整数和字符串组成的类,但我在该类中也有一个向量。我必须从文件中读取记录,然后在解析每一行后,将信息放入我的类向量中。我必须获取基本的包信息,如 ID 和名称,然后添加该包提供的服务,所以我可以有 10 条来自一个包的记录,但它们的服务类型不同。现在我正在尝试将数据放入每个包中并访问每个元素的数据,但是当我尝试从类内的向量中获取数据时,我的编译文件崩溃了。它还打印出 1233 和 foo,但不打印测试。任何想法为什么会这样?
int main()
{
vector<package> packs;
package pack;
pack.ID = 1233;
pack.name = "foo";
packs.push_back(pack);
pack.putData("test",12);
cout << packs[0].name << endl;
cout << packs[0].ID << endl;
cout << packs[0].bservice[0].serviceID << endl; //[b]Crashes in this line[/b]
return 0;
}
定义的类是:
class package
{
public:
class aservice
{
public:
int serviceID;
string othername;
};
int ID;
string name;
vector<aservice> bservice;
void putData(string name1, int serviceID1)
{
aservice obj;
obj.serviceID = serviceID1;
obj.othername = name1;
bservice.push_back(obj);
}
};