我遇到了shared_ptrS向量的問題。我的代碼是:C++ std :: vector <std :: shared_ptr>
//--------scoala.h--------
class Scoala
{
public:
Scoala(std::string);
int adaugaElev(std::shared_ptr<Elev> elev);
private:
std::vector<std::shared_ptr <Elev>> __elevi;
};
//-----------scoala.cpp-----------------------------
int Scoala::adaugaElev(std::shared_ptr<Elev> elev)
{
__elevi.push_back(elev);
return __elevi.size() - 1;
}
我運行它,我得到這個「在elev.exe未處理的異常在0x0137b559:0000005:訪問衝突讀取位置0xcccccd0c」。怎麼了 ?
除了其他任何名稱'__elevi'在C++用戶代碼中是非法的,所有包含雙下劃線或以下劃線和大寫字母開頭的名稱都是非法的。您還需要發佈調用您的函數的代碼,並調查引用的概念。 – 2011-05-21 11:58:19
請使用文本編輯器中的「{}」按鈕來格式化您的代碼。當你的問題*可讀*時,你會得到更好的答案。 – jalf 2011-05-21 11:59:21
是的,沒有什麼奇怪的。看看你的shared_ptr初始化。 – 2011-05-21 12:00:33