当前位置: 首页 > news >正文

C++语法学习笔记之六 --- 生命周期、作用域

1、std::unique_ptr 作用域

// 1. 局部unique_ptr:此时entry拥有StorageEntry对象的所有权
std::unique_ptr<StorageEntry> entry = std::make_unique<StorageEntry>();// 2. 记录原始指针:entry.get()返回对象的原始指针,存入buffer2storageEntry
buffer2storageEntry[genBuffer] = entry.get();// 3. 转移所有权:通过std::move将entry的所有权转移给StorageEntryVec中的元素
StorageEntryVec.emplace_back(std::move(entry));

std::unique_ptr是 “独占所有权” 的智能指针:同一时间只有一个unique_ptr能管理对象,当它离开作用域(或被销毁)时,会自动释放所管理的对象。但代码中通过std::move转移了所有权,避免了局部变量销毁导致的对象释放(当前代码通过std::move将所有权转移到了StorageEntryVec,只要StorageEntryVec的生命周期足够长(通常与MemPlan对象的生命周期一致),指针就会一直有效)

2、shared_ptr 作用域

通过 引用计数 实现共享所有权,只要存在任何一个 shared_ptr 未被销毁,对象就不会被释放

http://www.dtcms.com/a/339134.html

相关文章:

  • 私有化部署全攻略:开源大模型本地化改造的性能与安全深度评测
  • https如何保证传递参数的安全
  • 从零开始的云计算生活——第四十六天,铁杵成针,kubernetes模块之Configmap资源与Secret资源对象
  • 【Java】Spring Boot 3.0 微服务架构:高效开发与部署的最佳实践指南
  • CETOL 6σ 解决一次性支架输送器精度与法规验证难题
  • 算法——快速幂
  • 教程:用XiaothinkT6语言模型快速实现文本情感分类,附轻量模型推荐
  • 全链路自主构建智慧科研写作系统——融合LLM语义理解、多智能体任务协同与n8n自动化工作流构建
  • TDengine IDMP 运维指南(3. 使用 Ansible 部署)
  • 决策树算法全景解析:从 ID3、C4.5 到 CART
  • 响应式爬虫系统设计:Scala异步任务编排与弹性容错机制
  • 工业级蓝光三维扫描仪:助力汽车零部件高精度检测与质量提升
  • C++11 lambda表达式使用讲解
  • string 题目练习 过程分析 具体代码
  • leetcode_239 滑动窗口最大值
  • 本地部署消息中间件 Weblogic 并实现外部访问
  • 2025年9月计算机二级MySQL题库及wampserver2.2e下载安装教程
  • 解决linux中磁盘爆满(准确说是文件系统爆满)导致mysql启动失败的问题——对文件系统进行扩容
  • Chrome 插件开发实战技术文章大纲
  • 前端国际化(i18n)解决方案深度比较
  • C#项目集成海康SDK指南:从搭建环境到实现视频预览、录制、截屏
  • 从H.264到AV1:音视频技术演进与模块化SDK架构全解析
  • ComfyUI部署Wan2.2,开放API,文生视频与图生视频
  • 基于Python的宠物服务管理系统 Python+Django+Vue.js
  • 农村污水处理行业物联网解决方案
  • Vue3 el-table实现 将子表字段动态显示在主表行尾
  • GaussDB 中 alter default privileges 的使用示例
  • 鱼骨图图片制作全指南:使用工具推荐 + 行业案例
  • Python实战:SEO优化自动化工具开发指南
  • 大数据毕业设计选题推荐:护肤品店铺运营数据可视化分析系统详解