Effective C++读书笔记
--By Nathan.Yu 2007-11-28--
3 资源管理(之二)
条款14:在资源管理类中小心copying行为(Think carefully about copying behavior in resource-managing
classes)
“当一个RAII对象被复制时,会发生什么?”这是每个RAII
class作者必须面对的一般化问题。有4中可能:
1、
禁止复制。(见条款6: Uncopyable类)
2、
对底层资源祭出“引用计数”(reference-count)。通常只要内含一个tr1::shared_ptr成员变量,RAII
class便可实现出referenct-counting copying行为。即将成员T*改为tr1::shared_ptr<T>。
tr1::shared_ptr的缺省行为是“当引用次数为0时删除所指对象”。但tr1::shared_ptr允许指定“删除器”(deleter)——是一个函数或函数对象(function
object),当引用次数为0时被调用。“删除器”(deleter)作为tr1::shared_ptr构造函数的第二个参数传入。
3、
复制底部资源。——“深度拷贝”,比如字符串类,当复制发生时,不论指针或指针所指内存都要被复制。
4、
转移底部资源的拥有权。如auto_ptr。
请记住:
1、
复制RAII对象必须一并复制它所管理的资源,所以资源的copying行为决定RAII对象的copying行为。
2、
普遍而常见的RAII class copying行为是:抑制copying、施行引用计数法。不过其他行为也都可能被实现。
分享到:
相关推荐
effective c++读书笔记和总结 effective c++读书笔记和总结
effective C++读书笔记,effective C++读书笔记,effective C++读书笔记
effective C++ 很好 很不错 最好的C++进阶资料
《Effective Modern C++:改善C++11和C++14的42个具体做法(影印版)(英文版)》中包括以下主题:剖析花括号初始化、noexcept规范、完美转发、智能指针make函数的优缺点;讲解std∷move,std∷forward,rvalue引用和全局...
摘录了《Effective C++》 (Scott Meyers 著)中有参考价值的编写代码建议,方面阅读
Effective C++学习笔记 没有时间看Effictive C++书的人可以看看这个笔记 总结出了重点啊 适合有c++基础的人阅读
内容简介:有人说C++程序员可以分为两类,读过Effective C++的和没读过的。当您读过《Effective C++:改善程序与设计的55个具体做法(第3版)(中文版)(双色)》之后,就获得了迅速提升自己C++功力的一个契机。
C++Primer中文第三版(C++从入门到精通)第一章的读书笔记,主要是C++程序、预处理器指示符、iostream库等的基础知识点读书笔记。
自己整理的侯捷版本<<Effective C++ 改善程序与设计的55个具体做法>> 学习笔记.
effective c++笔记1
Effective C++笔记1
Effective_C++_3rd 读书笔记 pdf
Effective C++ Roy T 读书笔记,比较老的一本书,探讨一下C++。
C++学习笔记C++学习笔记C++学习笔记C++学习笔记C++学习笔记
读书笔记-C++内存管理
c++学习笔记/知识要点精华版
C++读书笔记
c++完美学习笔记c++完美学习笔记c++完美学习笔记c++完美学习笔记
千锋C++笔记.zip