// // Created by yudw on 2017/8/7. // #pragma once namespace yudw { template <typename T> class smart_pointer { public: // 需要显示构造 explicit smart_pointer(T* p): p_(p), use_(new size_t(1)){} // 拷贝构造 smart_pointer(const T &rhs): p_(rhs.p_), use_(rhs.use_){ ++*use_;} // 析构函数 ~smart_pointer() { if(--*use_ ==0) { delete p_; } } T* operator -> () const{ return p_;} T& operator * () const{ return *p_;} private: T* p_; // 指针 size_t* use_; // 引用计数 }; }
smart_ptr智能指针的简单实现
最新推荐文章于 2024-08-18 15:48:10 发布