一、关于auto_ptr
C++11标准前STL中就有了auto_ptr, 是通过由 new 表达式获得的对象,并在 auto_ptr 自身被销毁时删除该对象的智能指针。它可用于为动态分配的对象提供异常安全、传递动态分配对象的所有权给函数和从函数返回动态分配的对象。
二、实现auto_ptr
代码:
#include<iostream>
using namespace std;
namespace pzj
{
template<class _Ty>
class auto_ptr
{
private:
_Ty* _P; //new的对象的地址
bool owns; //拥有权(_P为NULL为假,反之)
public:
//成员函数
auto_ptr(_Ty* p = NULL) : _P(p)