Effective C++ 3
来源:互联网 发布:如何查询淘宝买家信誉 编辑:程序博客网 时间:2024/06/05 14:09
资源:有用有还。
资源:内存,文件描述器,互斥锁,图形界面中的字形和笔刷,数据库连接,socket
因此获得资源后必须放入对象。RAII原则(资源取得就初始化)
在析构函数时运用前一篇文章的方法防止异常。
不能让auto_ptr指向同一个对象。
RCSP(reference-counting smart pointer) 引用计数型智慧指针
但是tr1::shared_ptr无法打破互指而产生的错误“被使用”状态。
智能指针只能做delete 而不能做delete[],但是动态分配数组能够在string和vector中实现。
总之一句话,指针都要放进对象中。
互斥器实例:
第二种避免无谓复制方法:
auto_ptr和shared_ptr都提供get()函数提供原始指针。
一般来说显式转换比隐式转换好。
RAII的目的是让资源友好的释放。
接下来让我们看看delete和new
当new[]时,即动态分配数组,包括指出了数组大小,以便让delete知道调用多少个。
当然C++标准程序库的出现使得数组的需求降了不小。
shared_ptr<A>pt;
A*a=new A; new A的类型为原始指针类型。而shared_ptr为智能指针类型。
就整理到这里。接下来看4:设计与声明。
- <<Effective C++>>笔记3
- effective C++: 3资源管理
- 《effective c++》读书笔记3
- <Effective C++>读书笔记-3
- 《Effective C++》 Reading Note 3
- <<Effective C++>>读书笔记3: 资源管理
- Effective Modern C++》Item 3总结
- Effective-Objective-C-读书笔记-Item-3
- <<More Effective C++>>读书笔记3: 异常
- 《Effective C++》学习笔记(1~3)
- [effective modern c++][3]理解decltype
- Effective C++,Rule 3,使用const
- <<Effective C++>>读书笔记(3)
- Effective Modern C++: Item 3 ->弄清decltype
- Effective C++(第3版)pdf
- 《Effective C++》和《More Effective C++》汇总
- 《Effective C++》读书笔记
- 《Effective C#》 翻译札记
- C---求赫夫曼编码
- Linux下gdb调试程序
- PhysX结构图
- 服务器架构
- MPICH2安装、配置总结和问题
- Effective C++ 3
- 如何给你的软件做到有效的防破解
- 自定义绘制进度条, 在指定HDC内的RECT内绘制进度条, 适用于列表控件中插入进度条的应用.
- mysql 数据库字段为datetime类型时默认值为:0000-00-00 00:00:00 查询时异常 java.sql.SQLException:Value '0000-00-00' can not be represented as java.sq
- Flask 中文路径问题
- 有助于调试的编译选项和链接选项
- 1087 最大上升子序列
- CentOS 防火墙
- aa