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

标签 c++ c++11 constants unique-ptr ownership

我有一个 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/

相关文章:

c++ - 比较服务器端接收到的字符串 - C++

c++ - 如何通过保持性能来管理封装

c - const struct pointer 是否保证内存损坏/崩溃问题的安全性?

c - 使用 '.' token 定义常量

C# const 保护与内部

c++ - 渲染到 FBO 不起作用,gDEBugger 另有说法

c++ - 更新指针?

c++ - 英特尔 tbb 任务调度是否适合 DBMS?

c++ - 比较在 std::vector 中有和没有事先调整大小的推送数据(100 万个数字)

c++ - C++11 lambda 可以捕获文件范围变量吗?