rambo

unique_ptr

unique_ptr是一种定义在<memory>中的智能指针(smart pointer)。它持有对对象的独有权——两个unique_ptr不能指向一个对象,不能进行复制操作只能进行移动操作。

unique_ptr在超出作用域,即以下情况时它指向的对象会被摧毁:
  • unique_ptr指向的对象被破坏
  • 对象通过operator=()或reset()被指定到另一个指针)
unique_ptr还可能没有对象,这种情况被称为empty。
例如:

使用unique_ptr,可以实现以下功能,
1)为动态申请的内存提供异常安全
2)将动态申请内存的所有权传递给某个函数
3)从某个函数返回动态申请内存的所有权
4)在容器中保存指针