一个简单的异常问题(《深度探索C++对象模型》)!

xuanfeng 2001-12-24 07:59:37
class CTest
{
public:
CTest();
~CTest();
public:
};
CTest::CTest()
{
cout<<"CTest"<<endl;
}
CTest::~CTest()
{
cout<<"~CTest"<<endl;
}
class CTestException
{
public:
CTestException()
{
std::auto_ptr<CTest> pTest(new CTest);
throw 23;
cout<<"cannot arrive"<<endl;

}
};
void fun()
{
CTestException Throw;
cout<<"in fun"<<endl;
}
int main(int argc, char* argv[])
{
fun();
return 0;
}
在这个例子中,是否有内存没有被释放问题?
如果没有,那么为什么CTest的析构函数没有被调用?
如果有,这与许多书上写的意思相互矛盾。如《深度探索C++对象模型》p302(也许是我的理解有问题。)
cout<<"cannot arrive"<<endl;是不被执行的。相信大家没有什么意见。
cout<<"in fun"<<endl;被执行,可能大家没有意见,但和《深度探索C++对象模型》的p303是不是有些不一致?

...全文
58 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧