智能指针unique_ptr用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能指针unique_ptr用法相关的知识,希望对你有一定的参考价值。
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用法的主要内容,如果未能解决你的问题,请参考以下文章