gpt4 book ai didi

c++ - 拥有 unique_ptr 对象的唯一所有权意味着什么?

转载 作者:行者123 更新时间:2023-12-02 05:18:20 28 4
gpt4 key购买 nike

我知道当一个对象只有一个所有者时使用std::unique_ptr,当一个对象有多个所有者时使用std::shared_ptr。成为对象的唯一所有者意味着什么?

成为唯一所有者是否意味着其他人都无法看到该对象?

在将指针作为引用传递时,我可以使用 get() 方法返回原始指针吗?

我觉得如果我必须使用 get(),那么我要么使用 std::move 转移所有权,要么使用共享指针。

最佳答案

所有权就是:当不再需要资源时谁清理资源?

成为资源的唯一所有者意味着只有您负责在不再需要该对象时删除该对象。这意味着在您的生命周期结束后,没有其他人可以使用该对象。如果其他人依赖于在您的生命周期结束后仍然存在的对象,您需要共享所有权。

在现代 C++ 中,原始指针不应该参与所有权。当您将原始指针传递给函数时,您希望该函数不会保留该指针以便稍后使用它。

关于c++ - 拥有 unique_ptr 对象的唯一所有权意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58803359/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com