我在方法中创建了一个类A
的对象。此方法还会创建一个对象B
的实例,该对象将刚刚创建的对象A
作为构造函数参数。 B
必须拥有对象A
的所有权,但无法对其进行修改。这意味着删除A
时应删除B
,但在B
的有效期内,它无法修改A
。
在这种情况下,std::unique_ptr<const A>
作为B
的成员变量是转移A
所有权的正确方法(在{{1}的构造函数中使用std::move
}}并保证不会被修改?
答案 0 :(得分:8)
是的,这正是您正在寻找的语义。 std::unique_ptr<T>
状态&#34;我拥有T
对象。&#34;指向const A
状态的指针(原始或智能)&#34;我无法修改我指向的A
。&#34;总而言之,它正是你所追求的。