template<class T>
class auto_ptr
{
public:
auto_ptr(const T* ptr)
:_ptr(ptr)
{
}
//管理权转移,会产生悬挂指针问题。
auto_ptr(auto_ptr<T>& ap)
:_ptr(ap._ptr)
{
ap._ptr = nullptr;
}
~auto_ptr()
{
if (_ptr)
{
delete _ptr;
}
}
T& operator*()
{
return *_ptr;
}
T operator->()
{
return _ptr;
}
private:
T* _ptr;
};
模拟实现auto_ptr
最新推荐文章于 2025-04-05 23:46:25 发布