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

拷贝构造函数

    shared_ptr(const shared_ptr<T>& other) : ptr_(other.ptr_), ref_count_(other.ref_count_) {
  1. 函数声明:

    shared_ptr(const shared_ptr<T>& other)

  • 这是一个拷贝构造函数
  • 参数other是一个常量引用
  • 用于复制一个已有的智能指针

// 假设我们有两个智能指针
shared_ptr<int> p1(new int(42));  // 第一个智能指针
shared_ptr<int> p2 = p1;          // 第二个智能指针

当执行p2 = p1时,会调用拷贝构造函数:

shared_ptr(const shared_ptr<T>& other)

  • other就是p1
  • const表示不能修改p1
  • &表示直接使用p1,而不是复制一份
shared_ptr<int> p1(new int(42));  // p1指向42
shared_ptr<int> p2 = p1;          // 调用拷贝构造函数
// 在拷贝构造函数中:
// other 就是 p1
// other.ptr_ 就是 p1.ptr_(指向42的指针)
// other.ref_count_ 就是 p1.ref_count_(引用计数)

2.初始化列表:

: ptr_(other.ptr_), ref_count_(other.ref_count_)

相当于

  • ptr_ = other.ptr_:复制指针
  • ref_count_ = other.ref_count_:复制引用计数
http://www.lqws.cn/news/161083.html

相关文章:

  • (头歌作业)-6.5 幻方(project)
  • 在使用一些不用驱动大电流的设备就可以用stm32的自己的上下拉但是本身上下拉不就是给iicspi这些他通信给信号的吗中怎么还跟驱动能力扯上了有什么场景嘛
  • ProfiNet 分布式 IO 在某污水处理厂的应用
  • 自定义注解facade 实现切面 进行日志记录和参数校验
  • 智能标志桩图像监测装置如何守护地下电缆安全
  • html-pre标签
  • LeetCode 461.汉明距离
  • Spring MVC 之 异常处理
  • 简化复杂系统的优雅之道:深入解析 Java 外观模式
  • 数字证书_CA_详解
  • 2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
  • 二叉树的遍历总结
  • jdbc查询mysql数据库时,出现id顺序错误的情况
  • C:\Users\中文名修改为英文名
  • delphi7 链表 使用方法
  • 性能优化之SSR、SSG
  • 【前端】vue3性能优化方案
  • sourcetree取消待推送
  • 《计算机是怎么跑起来的》第二章读后感
  • 算法题(162):火烧赤壁
  • 13.4 AI颠覆语言学习:预录制视频+GPT-4评估如何实现60%成本降低与40%留存飙升
  • Seata 分布式事务 AT 模式
  • 智慧供水运维管理系统
  • LeetCode 70 爬楼梯(Java)
  • 探索未知惊喜,盲盒抽卡机小程序系统开发新启航
  • 半监督学习:低密度分离假设 (Low-Density Separation Assumption)
  • mysql密码正确SpringBoot和Datagrip却连接不上
  • c++第七天--特殊运算符的重载练习
  • day20 leetcode-hot100-38(二叉树3)
  • 第二章支线八 ·CSS终式:Tailwind与原子风暴