![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
析构函数
阿华Go
做一个有责任心有上进心的汉子,我要肩负起守护家人的重任!!!
展开
-
C++之不要让异常逃离析构函数(8)---《Effective C++》
条款8:别让异常逃离析构函数;我们先来参看如下代码:class A{public: ... ~A(){...}};void showA(){ std::vector<A> v; ...}考虑如下问题,当showA函数调用结束时,vector v这个局部变量需要被销毁,他讲负责销毁所有的A,加入v中有n个A,第一个A调用的时候发生异常,其他n-1个对象还是应该被原创 2017-07-19 15:07:21 · 235 阅读 · 0 评论 -
C++之构造函数和析构函数中不要调用virtual函数(9)---《Effective C++》
条款9:绝不要在构造函数和析构函数中调用virtual函数为什么不要在构造函数和析构函数中调用virtual函数呢?下面请大家带着上述问题来看如下代码:class Base{public: Base(); virtual void hello(); ... }private: int x; int y;};Base::Base()原创 2017-07-19 17:04:59 · 424 阅读 · 0 评论 -
C++之禁止异常信息传递到析构函数外面(10)---《More Effective C++》
C++中禁止异常传递到析构函数外面有两个原因:1)异常转递的堆栈辗转开解的过程中,防止terminate函数被调用;2)能够帮助确保析构函数总能完成我们希望它完成的动作。C++中有两种情况下会调用析构函数:1)正常情况下删除对象,如对象超出作用域或者对象指针被显示delete掉; 2)异常传递的堆栈辗转开解(stack-unwinding)过程中,由异常处理系统删除一个对象。 在上述两种情况下,原创 2017-09-02 16:25:51 · 301 阅读 · 0 评论