我正在尝试学习如何使用智能指针并了解所有权。当我auto_ptr
按值将 an 传递给函数时,该函数将独占该指针。所以当函数完成时,它会删除我传递给它的指针。
但是,当我尝试使用 a 执行此操作时出现编译错误unique_ptr
,好像为unique_ptr
s 禁用了复制分配。通过引用传递 aunique_ptr
似乎不会转移所有权,它只是为函数提供了对unique_ptr
.
如何auto_ptr
通过将所有权传递给与 s 一起工作的函数来获得 s 的行为unique_ptr
?我希望有一个详细教程的链接unique_ptr
,因为到目前为止,我读过的那些似乎只谈论auto_ptr
或谈论 Boost 可用的智能指针,并且似乎忽略了它,unique_ptr
因为shared_ptr
它涵盖了它。