當我有我的類的std :: vector時,我對如何使用析構函數感到困惑。C++析構函數與類對象的std :: vector的問題
所以,如果我創建一個簡單的類,如下所示:
class Test
{
private:
int *big;
public:
Test()
{
big = new int[10000];
}
~Test()
{
delete [] big;
}
};
然後在我的主要功能我做到以下幾點:
Test tObj = Test();
vector<Test> tVec;
tVec.push_back(tObj);
我在測試的析構函數得到一個運行崩潰時,我超出範圍。爲什麼是這樣的,我怎樣才能安全地釋放我的記憶?
不知何故,我的DevC++從這些chashes中「拯救」了我。此代碼[http://www.ideone.com/EHZBV]在Windows上的DevC++上執行得非常好。任何想法爲什麼可能會發生?不是很好。當它應該崩潰時,我希望它崩潰! – Lazer 2010-05-01 04:35:25