auto_ptr 源码
2011-07-26 19:27
134 查看
template <typename _Tp> class auto_ptr { private: _Tp *m_ptr; public: typedef _Tp elementType; // object life cycle explicit auto_ptr(elementType *p) throw():m_ptr(p) { } auto_ptr(auto_ptr &a) throw():m_ptr(a.release()) { } template <typename _Tp1> auto_ptr(auto_ptr<_Tp1> &a) throw() : m_ptr(a.release()) { } auto_ptr& operator= (auto_ptr& a) throw() { reset(a.release()); return *this; } template <typename _Tp1> auto_ptr& operator=(auto_ptr<_Tp1> &a) throw() { reset(a.release()); return *this; } ~auto_ptr() { delete m_ptr; } // operator override elementType& operator*() const throw() { assert(m_ptr != 0); return *m_ptr; } elementType* operator->() const throw() { assert(m_ptr != 0); return m_ptr; } // helper elementType* get() const throw() { return m_ptr; } elementType* release() throw() { elementType *tmp = m_ptr; m_ptr = 0; return tmp; } void reset(elementType *p = 0) throw() { if (p != m_ptr) { delete m_ptr; m_ptr = p; } } };
相关文章推荐
- 智能指针之auto_ptr源码剖析
- 智能指针auto_ptr源码剖析
- auto_ptr源码剖析
- STL 源码研读笔记(1)– auto_ptr
- auto_ptr源码解析以及例子 --auto_ptr_ref
- C++智能指针auto_ptr源码完全解析---以微软auto_ptr为例来探讨auto_ptr的用法
- auto_ptr 源码解析
- effective c++条款13-17 “以对象管理资源”之auto_ptr源码分析
- auto_ptr源码实现
- 智能指针auto_ptr源码
- C++标准库中简单智能指针auto_ptr的模仿实现源码
- C++:浅谈c++资源管理以及对[STL]智能指针auto_ptr源码分析,左值与右值
- auto_ptr源码分析
- C++ Standard Stl -- SGI STL源码学习笔记(01) auto_ptr
- auto_ptr 源码
- 基于auto_ptr源码的智能指针实现
- vc 下和Linux 下的auto_ptr源码剖析
- auto_ptr源码剖析
- C++ 只能指针 auto_ptr 原理 解析 源码
- auto_ptr的源码