boost::scoped_ptr智能指针

本文详细介绍了boost库中的scoped_ptr智能指针,包括构造与析构、reset函数、解引用和箭头操作符、swap成员及普通函数,以及使用示例。通过scoped_ptr,可以更好地管理内存,防止资源泄漏。
摘要由CSDN通过智能技术生成
1. 简介
   scoped_ptr是boost库提供的很类似auto_ptr的智能指针,它包装了new操作符在堆上分配的动态对象,能够保证动态创建的对象在任何时候都可以被正确地删除。在实现上都是利用了一个栈上的对象去管理一个堆上的对象,从而使得堆上的对象随着栈上的对象销毁时自动删除。但scoped_ptr的所有权更加严格,不能转让,并且永远不能被复制或赋值,一旦scoped_ptr获取了对象的管理权,你就无法再从它那里取回来。
  因此,在实际编程中是使用scoped_ptr还是auto_ptr,就需要根据它们的不同点进行选择。如果,根据你的设计是否需要转移所有权。如果需要那么就使用auto_ptr,如果不需要那么就使用scoped_ptr。scoped_ptr是一种轻量级的智能指针;使用它不会使你的程序变大或变慢。它只会让你的代码更安全,更好维护。

2. 实现分析
  下面我们看下boost::scoped_ptr类的成员函数,熟悉boost::scoped_ptr提供了哪些方法给我们。

namespace boost
{
template<class T> class scoped_ptr // noncopyable
{
private:

    T * px;

    scoped_ptr(scoped_ptr const &);
    scoped_ptr & operator=(scoped_ptr const &);

    typedef scoped_ptr<T> this_type;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值