Boost库的智能指针shared_ptr剖析

本文介绍了Boost库的智能指针shared_ptr,强调了其作为引用计数型智能指针的重要性和广泛使用。shared_ptr提供了多种构造函数和操作,如拷贝、赋值、自定义删除器等,支持放入STL容器。此外,文章提到了unique()和use_count()函数,以及shared_ptr的比较运算。最后指出,Boost库中的shared_ptr已被纳入C++TR1标准。
摘要由CSDN通过智能技术生成

之前的博客对Boost库的智能指针诞生的原因它们的作用,VS 和 VC下auto_ptr的不足,还解析了vc下的auto_ptr,以及Boost库的scoped_ptr和scoped_array这两个兄弟智能指针,可以查看之前的博客,今天我们直接入手shared_ptr。
shared_ptr简介
shared.ptr 是一个最像指针的“智能指针”,是boost.smart.ptr 库中最有价值、最重
要的组成部分,也是最有用的,
Boost 库的许多组件一甚至还包括其他一些领域的智能指针都使用了shared.ptr。抱歉,我实在想不出什么更恰当的词汇来形容它在软件开发中的重要性。
shared.ptr 与scoped.ptr一样包装了new 操作符在堆上分配的动态对象,但它实现的
是引用计数型的智能指针,可以被自由地拷贝和赋值,在任意的地方共享它,当没有代码使用(引用计数为0) 它时才删除被包装的动态分配的对象。shared.ptr 也可以安全地放到标准容器中,并弥补了auto_ptr转移语意的缺陷,而可以用到STL容器中去。

shared_ptr类摘要分析

/*
shared._ptr 与scoped ptr 同样是用于管理new 动态分配对象的智能指针,因此功能上
有很多相似之处: 它们都重载了*和->操作符以模仿原始指针的行为,提供隐式bool 类型转换以判断指针的有效性,get () 可以得到原始指针,并且没有提供指针算术操作。
*/
/*
shared ptr 的名字表明了它与scoped ptr 的主要不同:
它是可以被安全共享的,是一个“全功能”的类,,有着正常的拷贝、赋值语义,也可以进行shared ptr间的比较,是“最智能”的智能指针。
shared.ptr 要比同为智能指针的scoped ptr 复杂许多,它的类摘要如下:
*/
template<class T> class shared_ptr
{
public:
    typedef T element_ _type;
    shared.ptr ();
    template<class Y> explicit shared_ptr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值