HarmonyOS 鸿蒙Next ndk 开发中std::unique_ptr的使用

HarmonyOS 鸿蒙Next ndk 开发中std::unique_ptr的使用 为啥会报图片中的错误呢?它上面一行的利用构造函数来创建明明是可以的

cke_323.png


更多关于HarmonyOS 鸿蒙Next ndk 开发中std::unique_ptr的使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

报错:匹配不到构造函数,creds前面少了一个&取地址操作。

更多关于HarmonyOS 鸿蒙Next ndk 开发中std::unique_ptr的使用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


构造函数 只有一个参数,但是在使用时传参两个,匹配不到正确的构造函数

在HarmonyOS鸿蒙Next NDK开发中,std::unique_ptr 是C++11引入的智能指针,用于管理动态分配的内存,确保资源在不再需要时自动释放,从而避免内存泄漏。

std::unique_ptr 拥有其所指向对象的唯一所有权,这意味着同一时间内只能有一个 std::unique_ptr 实例拥有某个对象。当 std::unique_ptr 被销毁或重新赋值时,它所管理的对象也会被相应地删除或释放。

在鸿蒙Next NDK中使用 std::unique_ptr 时,你需要注意以下几点:

  1. 初始化:使用 std::make_unique 来创建 std::unique_ptr 实例,这是推荐的做法,因为它更安全且简洁。
  2. 转移所有权:可以通过 std::movestd::unique_ptr 的所有权从一个变量转移到另一个变量。
  3. 避免复制std::unique_ptr 不支持复制构造和复制赋值,只能移动。
  4. 作用域管理:确保 std::unique_ptr 在适当的作用域内被创建和销毁,以避免资源泄露或提前释放。

示例代码:

#include <memory>

void example() {
    auto ptr = std::make_unique<int>(10);
    // 使用ptr
} // ptr在这里被销毁,所管理的int对象也被释放

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html
回到顶部