auto_ptr学习

  1.autor_ptr是简单智能指针,不允许转移所属关系。赋值,参数传递的时候会转移所有权,因此不要轻易进行此类操作,若进行此操作原auto_ptr

失效,不会执行析构。

  2.auto_ptr还有一个比较好的就是保证异常安全,在有异常抛出,提前结束函数块时也会保证析构。

  3. 赋值操作。利用已经存在的智能指针来构造新的智能指针,在赋值之前,原来指向的对象被析构

  

 总结:

   1)auto_ptr不能共享所有权,即不要让两个auto_ptr指向同一个对象。

      2)auto_ptr不能指向数组,因为auto_ptr在析构的时候只是调用delete,而数组应该要调用delete[]。

      3)auto_ptr不能作为容器对象,拷贝是STL容器的工作方式,在这过程中auto_ptr会传递所有权

原文地址:https://www.cnblogs.com/encode/p/4224946.html