1.unique_ptr介绍
与auto_ptr相比unique_ptr有如下特点:
1、 unique_ptr是一个独享所有权的智能指针,无法进行复制构造、赋值操作操作,只能进行移动操作。无法使两个unique_ptr指向同一个对象;
2、unique_ptr智能指向一个对象,如果当它指向其他对象时,之前所指向的对象会被摧毁。
3、unique_ptr对象会在它们自身被销毁时使用删除器自动删除它们管理的对象。
4、unique_ptr支持创建数组对象方法。
//创建
std::default_delete<int> d;
std::unique_ptr<int> u1;
std::unique_ptr<int> u2 (nullptr);
std::unique_ptr<int> u3 (new int);
std::unique_ptr<int> u4 (new int, d);
std::unique_ptr<int> u5 (new int, std::default_delete<int>());
std::unique_ptr<int> u6 (std::move(u5));
std::unique_ptr<int> u7 (std::move(u6));
std::unique_ptr<int> u8 (std::auto_ptr<int>(new int));
//析构 Reset();