More Effective中auto_ptr实现
来源:互联网 发布:想给淘宝店铺取个名字 编辑:程序博客网 时间:2024/05/16 06:17
template<typename T>class auto_ptr{ public : //使用explicit关键字避免隐式转换 explicit auto_ptr(T* p=0); ~auto_ptr(); //使用另一个类型兼容的auto_ptr来初始化一个新的auto_ptr template<typename U> auto_ptr(auto_ptr<U>& rhs); template<typename U> auto_ptr<T>& operator=(auto_ptr<U>& rhs); T& operator*() const; T* operator->() const; //返回原始对象的指针 T* get() const; //放弃指针的所以权 T* release(); //删除原有指针并获得指针的p的所有权 void reset(T* p=0); private: T* pointee;
template<class T>
friend class auto_ptr<U>};template<typename T>auto_ptr<T>::auto_ptr(T* p) :pointee(p){}template<typename T> template<typename U>auto_ptr<T>::auto_ptr(auto_ptr<U>& rhs) :pointee(rhs.release()){}template<typename T>auto_ptr<T>::~auto_ptr(){ delete pointee;}template<typename T> template<typename U>auto_ptr<T>& auto_ptr<T>::operator=(auto_ptr<U>& rhs){ if(this!=&rhs) reset(rhs.release()); return *this;}template<typename T>T& auto_ptr<T>::operator*() const{ return *pointee;}template<typename T>T* auto_ptr<T>::operator->() const{ return pointee;}template<typename T>T* auto_ptr<T>::get() const{ return pointee;}template<typename T>T* auto_ptr<T>::release(){ T* oldpointee=pointee; pointee=0; return oldpointee;}template<typename T>void auto_ptr<T>::reset(T* p){ if(pointee!=p) { delete pointee; pointee=p; }}
0 0
- More Effective中auto_ptr实现
- More Effective C++ 读书摘要(auto_ptr的一个实现)
- More Effective C++ 读书摘要(auto_ptr的一个实现)
- More Effective C++ Item 附2:一个auto_ptr的实现实例
- (大卫的阅读笔记)More Effective C++ Item 附2:一个auto_ptr的实现实例
- 《More Effective C++》学习心得(六) auto_ptr的用法
- effective与more effective
- auto_ptr实现
- auto_ptr实现
- Effective & More Effective C++总结
- More Effective C++读书笔记
- more effective c++
- More effective C++ List
- More Effective C++学习
- more effective c++笔记
- More Effective C++ 笔记
- More effective c++ (一)
- More Effective C++学习心得
- 贪心的人类
- uva 10340
- DataGird 相关
- linux常用命令,简单一些的
- Linux TomCat 解决80端口启动
- More Effective中auto_ptr实现
- hibernate的saveOrUpdateAll与Jdbc的executeBatch
- 2014年360校园招聘笔试题,干货分享
- NYOJ-A*B Problem II
- 二元树求某一值路径。
- centos 7 安装音频视频解码器
- Windows 各种计时函数总结
- QStandardItemModel简介
- struts2 action向jsp传值