码迷,mamicode.com
首页 > 其他好文 > 详细

智能指针unique_ptr用法

时间:2016-12-03 18:20:18      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:ptr   共享   blog   错误   erro   move   auto   构造函数   失效   

  unique_ptr是独占型的智能指针,它不允许其他的智能指针共享其内部的指针,不允许通过赋值将一个unique_ptr赋值给另一个unique_ptr,如下面错误用法:

    std::unique_ptr<T> myPtr(new T);
    std::unique_ptr<T> myOtherPtr = myPtr; // error

  但是unique_ptr允许通过函数返回给其他的unique_ptr,还可以通过std::move来转移到其他的unique_ptr,注意,这时它本身就不再拥有原来指针的所有权了。相比于auto_ptr而言,unique_ptr是显示的转移,而不是莫名其妙的报废,因为auto_ptr调用拷贝构造函数后,原来的对象就失效了。

    std::unique_ptr<T> myPtr(new T);
    std::unique_ptr<T> myOtherPtr = std::move(myPtr); // ok

  

智能指针unique_ptr用法

标签:ptr   共享   blog   错误   erro   move   auto   构造函数   失效   

原文地址:http://www.cnblogs.com/jiayayao/p/6129157.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!