-
-
[旧帖]
[求助]C++异常。看了几本书,都没看懂。c++高手来帮忙看下
0.00雪花
-
发表于:
2014-7-13 20:33
1207
-
[旧帖] [求助]C++异常。看了几本书,都没看懂。c++高手来帮忙看下
0.00雪花
class errir
{
public:
errir()
{
p = new int;
*p= 50;
}
//errir(const errir &e)
//{
// p = new int;
// *p = 100;
//}
~errir()
{
delete p;
}
int *p ;
};
int _tmain(int argc, _TCHAR* argv[])
{
try
{
throw errir();
}
catch (errir &e)
{
cout<< *(e.p)<<endl;
}
system("pause");
return 0;
}
//上面执行错误。析构函数 执行两次。 看反汇编,throw后直接 运行了 析构
1.把 上面注释去掉。执行正确。看反汇编,throw后直接 运行 cath
2.把 析构改成 虚析构,也正确。。
看了 几本书的 异常。。都没有 说这个原因。。各位大牛 能不能给分析下呢。。谢谢了。。VS2010
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课