我正在尝试学习如何使用智能指针并理解所有权。当我通过值传递一个 auto_ptr 到函数时,该函数会独占该指针的所有权。因此,当函数完成时,它删除了我传递给它的指针。
然而,当我尝试使用 unique_ptr 进行这样的操作时,会出现编译错误,好像 unique_ptr 的复制赋值被禁用了一样。将 unique_ptr 按引用传递似乎并不会转移所有权,只是给函数一个对 unique_ptr 的引用。
我该如何使用传递所有权到函数的 auto_ptr 行为来处理 unique_ptr?我需要一个关于 unique_ptr 的详细教程链接,因为到目前为止我阅读过的教程似乎只谈论 auto_ptr 或讨论 Boost 提供的智能指针,并似乎忽略了 unique_ptr,因为 shared_ptr 已经涵盖了它。
然而,当我尝试使用 unique_ptr 进行这样的操作时,会出现编译错误,好像 unique_ptr 的复制赋值被禁用了一样。将 unique_ptr 按引用传递似乎并不会转移所有权,只是给函数一个对 unique_ptr 的引用。
我该如何使用传递所有权到函数的 auto_ptr 行为来处理 unique_ptr?我需要一个关于 unique_ptr 的详细教程链接,因为到目前为止我阅读过的教程似乎只谈论 auto_ptr 或讨论 Boost 提供的智能指针,并似乎忽略了 unique_ptr,因为 shared_ptr 已经涵盖了它。
unique_ptr
超出作用域时会发生什么?这就像删除 NULL 一样吗? - newprogrammer