智能指针(boost库中的smart_ptr库)
2018-03-18 23:42
190 查看
一、基本概念
智能指针解决了资源生存期管理的问题(尤其是动态分配的对象)
• 使用shared_ptr进行对象的生存期自动管理,使得分享资源所有权变得有效且安全。
(shared是boost最智能的智能指针,可以支持那些不是使用delete进行析构的资源)
• 使用weak_ptr可以安全地观测共享资源,避免了悬挂的指针。
• 使用scoped_ptr 和 scoped_array限制资源的使用范围,使得代码更易于编写和维护,并有助于写出异常安全的代码。
使用智能指针的三个场景:
1、资源所有权的共享
2、要编写异常安全的代码时
3、避免常见的错误,如资源泄露
智能指针解决了资源生存期管理的问题(尤其是动态分配的对象)
• 使用shared_ptr进行对象的生存期自动管理,使得分享资源所有权变得有效且安全。
(shared是boost最智能的智能指针,可以支持那些不是使用delete进行析构的资源)
• 使用weak_ptr可以安全地观测共享资源,避免了悬挂的指针。
• 使用scoped_ptr 和 scoped_array限制资源的使用范围,使得代码更易于编写和维护,并有助于写出异常安全的代码。
使用智能指针的三个场景:
1、资源所有权的共享
2、要编写异常安全的代码时
3、避免常见的错误,如资源泄露
相关文章推荐
- 智能指针(boost库中的smart_ptr库)
- boost库之shared_ptr库,智能指针
- 【02】 Boost库学习笔记之智能指针(Smart_ptr)
- 【Boost】boost库中智能指针——intrusive_ptr
- 14.智能(smart)指针,实现细节
- C++:Boost库智能指针_scoped_ptr
- (转)智能指针的另外一种实现 - Smart pointers in Delphi
- boost库中的智能指针向上转换
- [置顶] 从零开始学C++之boost库(一):详解 boost 库智能指针(scoped_ptr<T> 、shared_ptr<T> 、weak_ptr<T> 源码分析)
- 标准库和boost库中几个智能指针的比较
- C++:Boost库智能指针_scoped_array
- boost库在工作(2)作用域智能指针scoped_ptr之一
- BOOST库 之 智能指针的类型转换 (基类 与 子类之间智能指针的转换)(未完成)
- boost库智能指针带来的垃圾回收与c#垃圾回收机制对比
- C++:Boost库智能指针_shared_ptr
- boost库在工作(3)作用域智能指针scoped_ptr之二
- boost库:智能指针(auto_ptr、scoped_ptr、shared_ptr)浅谈
- 智能指针-Boost库内容介绍
- 条款17:以独立语句将newed对象置入智能指针(Store newed objects in smart pointers in standalone statements)
- C++:Boost库智能指针_shared_array