Smart pointers to boost your code(智能指针)
来源:互联网 发布:指向整形数组的指针 编辑:程序博客网 时间:2024/05/21 06:38
Smart pointers to boost your code(智能指针)
(2012-03-24 14:07:58)it
分类: C/Cplusplus使用普通指针
使用scoped_ptr
void
{
}
#include
void
{
}
使用scope_ptr指针就能够在函数结束的时候自动销毁它,但对于函数外创建的指针就无效了。
优点:使用scoped_ptr指针能偶帮助我们能处理那些容易忘记释放的对象,也因此在调试模式下如果使用空指针,就会出现一个断言。
优点
自动释放本地对象和成员变量。
缺点
在STL容器里,多个指针操作一个对象的时候需要注意。
性能
使用scoped_ptr
其记录有多少个引用指针指向同一个对象,弱国最后一个引用指针被销毁的时候,那么就销毁对象本身。
shared_ptr就是Boost中普通的引用指针计数器,它表示可以有多个指针指向同一个对象。
void
{
}
然后再给这个实例分配第二个指针,现在两个指针同时访问同一个数据
再将第一个指针制空,那么这个实例并没有被销毁,当mySample2退出它的作用域之外,CSample这个实例才被销毁。
4.重要特点:
- shared_ptr<T>作用在一个未知类型上
当声明或定义一个shared_ptr<T>,T可能是一个未知的类型。例如你仅仅在前面声明了class T,但并没有定义class T。当我们要释放这个指针的时候我们需要知道这个T具体是一个声明类型。
- shared_ptr<T>作用在任意类型上
在这里本质上不需要制定T的类型(如从一个基类继承下来的)
- shared_ptr<T>支持自己定义释放对象的操作
如果你的类中自己写了释放方法,也可以使用。具体参照Boost文档。
- 强制转换
如果你定义了一个U*能够强制转换到T*(因为T是U的基类),那么shared_ptr<U>也能够强制转换到shared_ptr<T>。
- shared_ptr
是线程安全的
(这种设计的选择超过它的优点,在多线程情况下是非常必要的)
- 已经作为一种惯例,用在很多平台上,被证明和认同的。
- Smart pointers to boost your code(智能指针)
- Smart Pointers to boost your code
- Smart Pointers to boost your code
- Smart Pointers智能指针
- 智能指针(Smart Pointers)
- Boost Smart Pointers 智能指針
- Boost.Interprocess使用手册翻译之十一:所有权的智能指针(Ownership smart pointers)
- Boost.Interprocess使用手册翻译之十一:所有权的智能指针(Ownership smart pointers)
- Smart Pointers 智能指针(一)
- Smart Pointers - What, Why, Which? 智能指针
- C++11特性 - Smart Pointers 智能指针
- Smart Pointers in Boost
- Smart Pointer--智能指针
- 智能指针(smart pointer)
- 智能指针(smart pointer)
- 智能指针(Smart Pointer)
- 智能指针 smart pointer
- 智能指针五大黄金法则(Five Golden rules of smart pointers)
- ARCGIS server10.2发布地图步骤
- The connection to adb is down, and a severe error has occured. .
- 【重读设计模式】享元模式(蝇量模式)
- memset内存分配
- linux下安装tomcat
- Smart pointers to boost your code(智能指针)
- Kafka message协议和存储 (0.7版本)
- 1
- win系统下nodejs安装及环境配置
- POJ 1330 Nearest Common Ancestors(Tarjan离线LCA)
- 论网络知识的重要性
- 第八周项目六——计算某年某月有几天
- 黑马程序员——4、C语言(结构体、枚举)
- Google 遇到的问题