标题:
std::unique_ptr
[打印本页]
作者:
admin
时间:
2018-7-2 15:14
标题:
std::unique_ptr
1. unique_ptr来管理指针,一个原则:一个unique_ptr管理一个指针,一个指针只能被一个unique_ptr管,前者好理解,后者容易被忽视:
int * pi = new int;
std::unique_ptr<int> p1(pi);
std::unique_ptr<int> p2(pi); // 将运行时错误,将两个指针,交给两个 unique_ptr 来管理
作者:
admin
时间:
2018-7-2 15:30
2. 为了这个原则,uniuqe_ptr,把复制构造函数,和复制赋值方法都删除了,
unique_ptr(const _Myt&) = delete; // 复制构造函数
_Myt& operator=(const _Myt&) = delete; // 复制赋值方法
3.
std::unique_ptr<int> p3(p1);// 出错,复制初始化方法,被删,
p1 = p2; // 不能使用,复制赋值方法被删
p1 = std::unique_ptr<int>(pi); // 可以使用,调用移动赋值方法 unique_ptr<int> & operator=(unique_ptr<int>&& _Right)
欢迎光临 杰表技术论坛 (http://bbs.jatools.com/)
Powered by Discuz! 6.1.0