【发布时间】:2011-02-14 06:41:33
【问题描述】:
当我有一个类的 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);
当我超出范围时,我在 Test 的析构函数中遇到运行时崩溃。为什么会这样?如何安全地释放我的内存?
【问题讨论】:
-
不知何故,我的 DevC++ 将我从这些困境中“救了出来”。此代码 [ideone.com/EHZBV] 在 Windows 上的 DevC++ 上执行得非常好。任何想法为什么会发生这种情况?这是不好的。我希望它在它应该崩溃的时候崩溃!
标签: c++ memory vector destructor