std::unique_ptr 转移常量对象的所有权
std::unique_ptr to transfer ownership of a const object
我在一个方法中创建了一个 class A
的对象。此方法还创建对象 B
的实例,该实例将刚刚创建的对象 A
作为构造函数参数。 B
必须取得对象 A
的所有权,但不能修改它。这意味着 A
应该在删除 B
时被删除,但是在 B
的生命周期内它不能修改 A
.
在这种情况下,std::unique_ptr<const A>
作为 B
的成员变量是转移 A
所有权的正确方法(在 [ 的构造函数中使用 std::move
=12=]) 并保证不被修改?
是的,这正是您正在寻找的语义。 std::unique_ptr<T>
状态 "I own the T
object." 指向 const A
状态的指针(原始或智能)"I cannot modify the A
to which I point." 合在一起,这正是您所追求的。
我在一个方法中创建了一个 class A
的对象。此方法还创建对象 B
的实例,该实例将刚刚创建的对象 A
作为构造函数参数。 B
必须取得对象 A
的所有权,但不能修改它。这意味着 A
应该在删除 B
时被删除,但是在 B
的生命周期内它不能修改 A
.
在这种情况下,std::unique_ptr<const A>
作为 B
的成员变量是转移 A
所有权的正确方法(在 [ 的构造函数中使用 std::move
=12=]) 并保证不被修改?
是的,这正是您正在寻找的语义。 std::unique_ptr<T>
状态 "I own the T
object." 指向 const A
状态的指针(原始或智能)"I cannot modify the A
to which I point." 合在一起,这正是您所追求的。