std :: unique_ptr转移const对象的所有权

时间:2015-03-13 13:59:29

标签: c++ c++11 const unique-ptr ownership

我在方法中创建了一个类A的对象。此方法还会创建一个对象B的实例,该对象将刚刚创建的对象A作为构造函数参数。 B必须拥有对象A的所有权,但无法对其进行修改。这意味着删除A时应删除B,但在B的有效期内,它无法修改A

在这种情况下,std::unique_ptr<const A>作为B的成员变量是转移A所有权的正确方法(在{{1}的构造函数中使用std::move }}并保证不会被修改?

1 个答案:

答案 0 :(得分:8)

是的,这正是您正在寻找的语义。 std::unique_ptr<T>状态&#34;我拥有T对象。&#34;指向const A状态的指针(原始或智能)&#34;我无法修改我指向的A。&#34;总而言之,它正是你所追求的。