最小auto_ptr

发布时间:2016-12-7 3:49:12 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"最小auto_ptr",主要涉及到最小auto_ptr方面的内容,对于最小auto_ptr感兴趣的同学可以参考一下。

template<class T> class auto_ptr { T* ap; public: explicit auto_ptr(T* ptr = 0) throw():ap(ptr){} ~auto_ptr() { delete ap; ap = 0; } auto_ptr(auto_ptr& rhs)throw():ap(rhs.release()){} template<class Y>//使用模板是为了实现继承类指针的隐式转换 auto_ptr(auto_ptr<Y>& rhs)throw():ap(rhs.release()){} auto_ptr& operator=(auto_ptr& rhs)throw()//不用const是为了释放rhs { reset(rhs.release()); return *this; } template<class Y> auto_ptr& operator=(auto_ptr<Y>& rhs) throw() { reset(rhs.release()); return *this; } T& operator *() const throw() { return *ap; } T* operator->()const throw() { return ap; } T* get() throw() { return ap; } T* release() throw() { T* tmp(ap); ap = 0; return tmp; } void reset(T* ptr = 0) throw() { if ( ap != ptr ) { delete ap; ap = ptr; } } };

上一篇:重建Oracle控制文件的命令(Helloblock写作)
下一篇:你知道哪些极具创意的二维码QR广告?

相关文章

关键词: 最小auto_ptr

相关评论