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会传递所有权