我有一个 A
类的对象在方法内部创建。此方法还创建对象的实例 B
将对象 A
作为构造函数参数刚刚创建。 B
必须取得对象的所有权A
但它不能修改它。这意味着 A
B
时应删除被删除,但在 B
的生命周期内它不能修改 A
.
在本例中为 std::unique_ptr<const A>
作为B
的成员变量是转移 A
所有权的正确方法(在 std::move
的构造函数中使用 B
)并保证它不会被修改?
最佳答案
是的,这正是您正在寻找的语义。 std::unique_ptr<T>
声明“我拥有 T
对象。”指向 const A
的指针(原始或智能)声明“我无法修改我指向的 A
”。总而言之,这正是您所追求的。
关于c++ - std::unique_ptr 转移 const 对象的所有权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29034166/