【转】浅析auto_ptr(14)
时间:2025-07-14
时间:2025-07-14
智能指针,auto_prt的基本用法,及其示例
_M_ptr = __p;
}
}
//为了匹配类似形式
//auto_ptr<Derived> func_returning_auto_ptr(.....); auto_ptr(auto_ptr_ref<element_type> __ref) throw() : _M_ptr(__ref._M_ptr) { }
//为了匹配类似形式
//auto_ptr<Base> ptr = func_returning_auto_ptr(.....); auto_ptr&
operator=(auto_ptr_ref<element_type> __ref) throw() {
if (__ref._M_ptr != this->get())
{
delete _M_ptr;
_M_ptr = __ref._M_ptr;
}
return *this;
}
//匹配两种转化形式
template<typename _Tp1>
operator auto_ptr_ref<_Tp1>() throw()
{ return auto_ptr_ref<_Tp1>(this->release()); }
template<typename _Tp1>
operator auto_ptr<_Tp1>() throw()
{ return auto_ptr<_Tp1>(this->release()); }
上一篇:预分解窑操作的体会(二)