gpt4 book ai didi

c++ - 由 const std::unique_ptr 管理的对象的生命周期

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:56:36 26 4
gpt4 key购买 nike

我在 std::unique_ptr reference 中看到以下注释:

Only non-const unique_ptr can transfer the ownership of the managed object to another unique_ptr. The lifetime of an object managed by const std::unique_ptr is limited to the scope in which the pointer was created.

有谁能举例说明一下吗?我不明白为什么。

最佳答案

您根本无法从 const std::unique_ptr 移动,也无法使用其他修改成员函数 - swapreleasereset (这些在逻辑上是非 const 限定的,不能在 const 实例上调用)。

转移所有权意味着将旧所有者重置为非拥有状态,从而对其进行修改。


const std::unique_ptr 将在其生命周期内(从其初始化开始)管理至多一个对象。
如果std::unique_ptr const&,您将无法通过此引用(const 正确性)从引用的(甚至是非 const)std::unique_ptr 转移所有权。

关于c++ - 由 const std::unique_ptr 管理的对象的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35635151/

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