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

C++:共享指针unique_ptr的理解与应用

指正指针unique_ptr

智能指针是C++11引入的新特性。对智能指针来说就有两条原则:

  1. 智能指针本身不能被动态分配,否则只能指针自身有无法被释放的风险,它所管理对象不能正确地被释放;
  2. 在栈上分配智能指针,让它指向堆上动态分配的对象,这样就能保证智能指针所管理的对象能够合理地被释放。

智能指针unique_ptr 具备“在适当时机自动释放堆内存空间”的能力。和指针shared_ptr最大的不同之处在于,指针unique_ptr指向的堆内存无法同其它指针unique_ptr共享,每个unique_ptr指针都独自拥有对其所指堆内存空间的所有权。这也说明每个指针unique_ptr指向的堆内存空间的引用计数,都只能为1,一旦该unique_ptr指针放弃对所指堆内存空间的所有权,则该空间会被立即释放回收。

智能指针unique_ptr是以模板类的形式提供的,unique_ptr<T>(T 为指针所指数据的类型)定义在<memory>头文件,并位于 std 命名空间中。

#include <memory>using namespace std;

创建智能指针unique_ptr

unique_ptr<T> 模板类提供了多个实用的构造函数。通过以下2种方式,

http://www.xdnf.cn/news/628777.html

相关文章:

  • 每日定投40刀BTC(17)20250511 - 20250524
  • 什么是数据分析
  • Go基础语法与控制结构
  • ROS云课三分钟-破壁篇GCompris-一小部分支持Edu应用列表-2025
  • 部署n8n
  • 海思SVP_NPU开发适配
  • Python训练营---Day35
  • 哈希表原理与双散列实战指南
  • 超时处理机制设计:从TICK到回调
  • 刷leetcode hot100返航版--贪心5/23
  • Python性能优化利器:__slots__的深度解析与避坑指南
  • 《2.1.4 C语言中的整数类型及类型转换|精讲篇》
  • 基于netmiko模块实现支持SSH or Telnet的多线程多厂商网络设备自动化巡检脚本
  • 测试总结(一)
  • 虚拟文件(VFS)
  • RK3588 DRM 介绍及调试记录
  • keycloak获取用户信息(go实现获取keycloak用户信息)
  • 打卡35天
  • IEC 60034-30-1标准解析:旋转电机能效分级与全球影响
  • 树形DP
  • HarmonyOS介绍
  • 【深度剖析】三一重工的数字化转型(下篇1)
  • Stream流的中间方法、终结方法与收集方法
  • 【日志软件】hoo wintail 的替代
  • Python——MySQL远程控制
  • [原创]X86C++反汇编01.IDA和提取签名
  • 1、初识YOLO:目标检测的闪电战
  • 地下综合管廊 3D 可视化平台
  • CSS定位详解:掌握布局的核心技术
  • C语言数据结构-链式栈