首页 > 其他 > 详细

【M10】在构造方法内阻止资源泄漏

时间:2014-03-04 12:34:04      阅读:392      评论:0      收藏:0      [点我收藏+]

1、类中没有指针,如果对象构造过程中出现异常,C++保证已经构造好的那一部分自动销毁。注意:这里不是调用析构方法,而是编译器在你的构造方法中插入了一些代码。

2、类中有指针,比如有a, b两个指针。a初始化完成,b抛出异常,这将导致资源泄漏。

3、注意,这种情况下,绝不会调用析构方法,因为C++只会析构已经构造完成的对象。接着思考,在堆上分配对象,把指针传出来,对指针delete,可行吗?

  不可行,因为构造过程出现异常,指针是传递不出来的。外部的指针还是null。

4、思考:为什么C++只析构已经构造完成的对象?

  假如析构部分构造的对象,那么析构方法该做些什么事呢?应该是析构已经构造好的那一部分,但是这要求记录哪些内容已经构造好,哪些内容没有构造好,显然,这个代价太大,因此不执行。

5、

【M10】在构造方法内阻止资源泄漏,布布扣,bubuko.com

【M10】在构造方法内阻止资源泄漏

原文:http://www.cnblogs.com/nzbbody/p/3579143.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!