我有一個由int和字符串組成的類,但是我在該類中也有一個向量。我必須從文件中讀取記錄,然後在解析每行之後,將信息放入我的向量類中。我必須獲得ID和名稱等基本包信息,然後添加隨包提供的服務,因此我可以從一個包獲得10條記錄,但它們在服務類型方面存在差異。現在我正試圖將數據放在每個包中,並從每個元素訪問數據,但是當我試圖從類中的矢量中獲取數據時,編譯的文件崩潰。它也打印出1233和foo,但不是測試。任何想法是爲什麼?從類的向量中讀取數據 - C++
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);
}
};
其中'patients'聲明? – hmjd
顯示的代碼甚至不會編譯(「患者」未在任何地方定義/聲明)。所以如果我們給你合理的答案而不是猜測,請給我們看看完整的代碼;如果可以的話,將實際問題縮減爲儘可能少的代碼! – codeling
在你的例子中它應該是packs.push_back(pack); –