//异常处理
#include <iostream>
using namespace std;
class Test
{
private:
int* p;
public:
Test()
{
cout << "Test() "<< endl;
p = new int[5];
throw 2;
}
~Test() //在构造函数中抛出异常,因对象不完整,造成析构函数无法被调用 ,内存被泄露
{
cout << "~Test() "<< endl;
delete[] p;
}
};
int main()
{
try
{
Test t;
}
catch(int e)
{
cout << "Catch "<< e << endl;
}
return 0;
}
本文详细介绍了C++中使用异常处理来防止内存泄露的过程,通过构造函数中抛出异常,展示了如何在对象未完全初始化时避免析构函数被调用导致的内存泄漏问题。
613

被折叠的 条评论
为什么被折叠?



