两种情况下会调用析构函数:
1.正常情况下删除对象,例如对象超出作用域或被显得delete;
2.异常传递的堆栈辗转开解(stack-unwinding)过程中,由异常处理系统删除一个对象。
在析构函数使用try-catch捕获异常,禁止异常消息传递到析构函数外,两原因:
1.能够在异常传递的堆栈辗转开解(stack-unwinding)过程中,防止terminate被调用;
2.能帮助确保析构函数总能完成我们希望它能做的所有事情;
C++异常:禁止异常消息传递到析构函数外
最新推荐文章于 2023-06-30 11:23:32 发布