智能指针2--ScopedPtr

来源:互联网 发布:linux查看系统字体设置 编辑:程序博客网 时间:2024/05/20 13:04

ScopedPtr:

1.将拷贝构造和赋值运算符重载设为protected类型。

2.定义构造函数和赋值运算符重载函数。





#pragma oncetemplate<class T>class ScopedPtr{public:ScopedPtr()  //无参:_ptr(NULL){}ScopedPtr(T* ptr) :_ptr(ptr){}~ScopedPtr(){if (_ptr){delete _ptr;_ptr = NULL;}}T* operator* (){return *_ptr;}T& operator->(){return _ptr;}protected://定义为保护类,不让外界定义和使用。ScopedPtr(const ScopedPtr<T>& sp);ScopedPtr& operator=(const ScopedPtr<T>& sp);protected:T* _ptr;};void  TestScopPtr(){ScopedPtr<int> sp1(new int(1));//ScopedPtr<int> sp2(sp1);}


1 0
原创粉丝点击