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

C++智能指针shared_ptr使用详解

shared_ptr 是一个共享所有权的智能指针,允许多个指针指向同一个对象。

shared_ptr使用引用计数,每一个shared_ptr的拷贝都指向相同的内存。每使用它一次,内部的引用计数加1,每析构一次,内部的引用计数减1,减为0时,释放所指向的堆内存。shared_ptr内部的引用计数是安全的,但是在多线程时对象的读取需要加锁。

13.3.1 shared_ptr初始化

shared_ptr有如下三种初始化方式:

  1. 裸指针直接初始化,但不能通过隐式转换来构造,因为shared_ptr构造函数被声明为explicit;
  2. 允许移动构造,也允许拷贝构造;
  3. 通过make_shared构造。

为了更好的了解智能指针,我们从最简单的例子内存申请开始,先看看下面的代码

#include <iostream>
#include <memory>
http://www.lryc.cn/news/187090.html

相关文章:

  • 基于Java的个性化旅游攻略系统设计与实现(源码+lw+ppt+部署文档+视频讲解等)
  • 中国替代方案探索:替代谷歌企业邮箱的选择
  • Holographic MIMO Surfaces (HMIMOS)以及Reconfigurable Holographic Surface(RHS)仿真
  • RK3568笔记一:RKNN开发环境搭建
  • 设计模式 - 行为型模式:策略模式(概述 | 案例实现 | 优缺点 | 使用场景)
  • rancher部署pv、pvc、离线部署nfs
  • 视频拍摄教程分享
  • IP组成,分类,子网划分
  • Python视频剪辑-Moviepy视频内容变换技术
  • OceanBase 数据库入门知识
  • 自定义无边框窗口
  • 【网络安全 --- kali2023安装】超详细的kali2023安装教程(提供镜像资源)
  • 机器学习笔记(二)
  • Java @Override 注解
  • 用rabbitMq 怎么处理“延迟消息队列”?
  • 不常见的JS加密分析
  • TCP原理特性详解
  • 什么是懒加载,JS如何实现懒加载,在php中如何去实现懒加载
  • Cesium 展示——读取文件——加载 geojson 文件数据
  • (二)Apache log4net™ 手册 - 配置
  • Elasticsearch:时间点 API
  • hive数据表定义
  • OpenMesh 网格简化之顶点聚类
  • C++ 类和对象篇(八) const成员函数和取地址运算符重载
  • k8s 集群安装(vagrant + virtualbox + CentOS8)
  • 8、Docker数据卷与数据卷容器
  • 大数据与Hadoop入门理论
  • 持续集成部署-k8s-深入了解 Pod:探针
  • 来单提醒/客户催单 ----苍穹外卖day9
  • 【单片机】18-红外线遥控