首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 编程交流与学习--More Effective C++的学习-Item M28:灵巧(smart)指针
【标  题】:编程交流与学习--More Effective C++的学习-Item M28:灵巧(smart)指针
【关键字】:--More,Effective,C++,-Item,M28,smart
【来  源】:http://blog.csdn.net/swordll80/archive/2006/10/26/1352661.aspx

编程交流与学习--More Effective C++的学习-Item M28:灵巧(smart)指针

Item M28:灵巧(smart)指针

Stl源代码如下:

template<class _Ty>

class auto_ptr {

public:

typedef _Ty element_type;

explicit auto_ptr(_Ty *_P = 0) _THROW0()

    : _Owns(_P != 0), _Ptr(_P) {}

auto_ptr(const auto_ptr<_Ty>& _Y) _THROW0()

    : _Owns(_Y._Owns), _Ptr(_Y.release()) {}

auto_ptr<_Ty>& operator=(const auto_ptr<_Ty>& _Y) _THROW0()

    {if (this != &_Y)

        {if (_Ptr != _Y.get())

            {if (_Owns)

                delete _Ptr;

            _Owns = _Y._Owns; }

        else if (_Y._Owns)

            _Owns = true;

        _Ptr = _Y.release(); }

    return (*this); }

~auto_ptr()

    {if (_Owns)

        delete _Ptr; }

_Ty& operator*() const _THROW0()

    {return (*get()); }

_Ty *operator->() const _THROW0()

    {return (get()); }

_Ty *get() const _THROW0()

    {return (_Ptr); }

_Ty *release() const _THROW0()

    {((auto_ptr<_Ty> *)this)->_Owns = false;

    return (_Ptr); }

private:

bool _Owns;

_Ty *_Ptr;

};

原文太长,懒得看了。

 
hanoi:【上一篇】
编程交流与学习--More Effective C++的学习-Item M27:要求或禁止在堆中产生对象:【下一篇】
【相关文章】
  • 编程交流与学习--More Effective C++的学习-Item M29:引用计数
  • c++动态建立学生排序范例
  • 从笑话中悟出C++开发管理之"道"
  • 编程交流与学习--More Effective C++的学习-Item M25:将构造函数和非成员函数虚拟化
  • Thinking in C++(3)
  • 1.3 利用Visual C++/MFC开发Windows程序的优势
  • 用Visual C++干干净净地清除进程
  • 实例解析C++/CLI程序进程之间的通讯
  • 软件外企C++面试题,大家试试看
  • C++&Lisp比较
  • 【随机文章】
  • jar包的打法(带package)
  • 编写可复用性更好的C++代码——Band对象和COMToys(九)
  • 系统配置完毕
  • 网络通信开发包说明与开发手册
  • 还得重来哦~
  • 多线程断点续传研究之二
  • AgileIM 即时通 -- 起源
  • 2006年12月15号 阴转晴多云
  • 五笔打字员2.5 下
  • 在Eclipse下的C/C++开发(Eclipse3.2 + CDT 3.1)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.