您的位置:首页 > 编程语言 > C语言/C++

Effective C++学习笔记 (14)

2012-09-11 00:03 197 查看

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教


在资源管理类中小心copying行为

         对于上一条款所讲的RAII(资源取得时便是初始化时机)原则,本条款对于资源管理类的拷贝行为进行了说明,大概分为以下几种:在执行copy时采用深度拷贝,把管理类的资源也一起拷贝;禁止copy行为(将拷贝构造函数或者赋值运算符私有化);使用引用计数(shared_ptr)。

         其实仔细想想这种做法还是很有必要的,上一条款所讲的两种只能指针中auto_ptr之所以说是一种不完整的,就是因为他没有采用以上三种方法中的任何一种。但是它采用了移除被拷贝者资源的方法来避免两个资源管理对象同时拥有同一个资源,这样一来也保证了一个资源只被一个资源管理对象拥有。总的来说要么保证一个资源只被一个资源管理对象所拥有,要么保证同一个资源在被多个资源管理对象拥有时不会出现被提前释放或者未释放的情况。

         感觉该条款没有太多的代码可以贴,所以就稍微用点文字记录下吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ raii c