TR1 smart pointer
来源:互联网 发布:淘宝订单怎么评价 编辑:程序博客网 时间:2024/06/06 12:52
TR1里提供了两种smart pointer, shared_ptr和weak_ptr。shared_ptr通过引用计数管理资源,而weak_ptr主要是为了避免死锁问题。
shared_ptr有一个get成员函数,可以得到内部的资源指针。weak_ptr没有这样的函数,所以如果需要从weak_ptr里得到资源指针,必须先把weak_ptr转化为shared_ptr,可以通过构造函数和weak_ptr的lock成员函数来实现,两者的区别是,如果weak_ptr已经过期,构造函数会抛出异常,而lock函数不会。所谓过期(expired),是指weak_ptr指向的资源已经被释放了。可以通过weak_ptr的expired函数来确定它是否已经过期。
use_count,reset和swap等成员函数,意义都很明显。use_count是当前拥有该资源的引用计数,reset是释放所有权,swap是交换所有权。
shared_ptr在构造函数里面可以指定一个deleter,当引用计数为0时,通过deleter来释放资源。如果没有指定deleter,则使用默认的delete操作符删除内部的指针。
- TR1 smart pointer
- Smart Pointer
- Smart pointer
- smart pointer
- Smart Pointer
- Smart Pointer
- Smart pointer
- smart pointer
- smart pointer
- smart pointer
- smart pointer
- A TR1 Tutorial: Smart Pointers
- smart pointer / shared pointer / normal pointer
- Smart Pointer访谈录
- Smart Pointer--智能指针
- Smart Pointer访谈录
- boost smart pointer 笔记
- 智能指针(smart pointer)
- Verilog HDL常用的行为仿真描述语句(五)
- ActionScript3.0读取网页FlashVars中的参数
- C++构造函数的幕后工作
- asp.net中利用sortedlist类为listbox排序
- 查询整个数据库
- TR1 smart pointer
- [转]emca与emctl常用的命令语法
- JVM对类的处理
- STL map常用操作简介
- 全面认识UML类图元素
- 类的生命周期
- 钱能c++以 局部函数 引出 函数调用机制中疑惑解答
- DB 8升级到9 部分函数变动(Left Substr)
- Case中如何使用String做为判断条件