news 2026/10/22 13:10:42

C++智能指针 shared_ptr与unique_ptr

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++智能指针 shared_ptr与unique_ptr

shared_ptr与unique_ptr的转换关系

· 不能将shared_ptr转换为unique_ptr

· unique_ptr可以转换为shared_ptr(通过std::move)

常见的使用方式

· 将你的函数返回unique_ptr 是一种常见的设计模式,这样可以提高代码的复用度,因为unique_ptr可以赋值给shared_ptr,这样可以随时改变为shared_ptr

代码实践

#include<iostream>// 智能指针头文件#include<memory>// 自定义类头文件#include"CustomClass.h"usingnamespacestd;// 创建unique_ptr指针std::unique_ptr<CustomClass>get_unique_ptr(){std::unique_ptr<CustomClass>cp=std::make_unique<CustomClass>("unique to shared");returncp;}intmain(){// 创建unique_ptrstd::unique_ptr<CustomClass>cup1=std::make_unique<CustomClass>("unique ptr");// 将unique_ptr赋值给shared_ptrstd::shared_ptr<CustomClass>csp1=std::move(cup1);std::cout<<"csp1 use count: "<<csp1.use_count()<<endl;// func 返回值std::shared_ptr<CustomClass>csp2=get_unique_ptr();if(csp2){std::cout<<"csp2 is not null"<<endl;csp2->cat_info();std::cout<<"csp2 use count: "<<csp2.use_count()<<endl;}else{std::cout<<"csp2 is null"<<endl;}std::cout<<"----------- END --------------------\n";return0;}

打印结果:

可以看到:
unique_ptr可以直接赋值给shared_ptr,且赋值给 shared_ptr 后,内存也会在指针不被指向后进行自动回收

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/22 13:10:42

【踩坑实录】Java 后端对接海外渠道:SSL/TLS 证书导致 org.apache.http.conn.ConnectTimeoutException 的排查与优雅解决

前言 跨境网关排查 ConnectTimeout&#xff0c;别只盯着网络。这是一次由根证书缺失引发、伪装成连接超时的真实故障。本文记录了完整的排查路径&#xff0c;以及一套进程级隔离的无损证书适配方案&#xff0c;可直接落地复用。 背景与痛点 最近&#xff0c;我们在负责跨境支付…

作者头像 李华
网站建设 2026/10/22 13:09:47

支付宝沙箱的单机模拟操作(待补充)

想要理解这个场景的话&#xff0c;我们需要先对支付的大概流程有一个理解。首先支付的前提是有两笔订单&#xff0c;一个是用户与商户之间的&#xff0c;另外一个是平台与用户之间的&#xff1b;其次流程大概就是用户遇到想买的东西&#xff0c;于是下单&#xff0c;然后商户记…

作者头像 李华
网站建设 2026/10/22 13:08:56

星载微控制器MCU选型与系统设计的证据化方法

摘要商业航天的批产化使国产微控制器进入星载控制类应用的视野&#xff0c;但"经过抗辐射验证"与"适合本任务"之间仍有相当距离。本文面向星载控制单机的设计人员&#xff0c;以国科安芯AS32S601ZIT2型32位RISC-V微控制器为对象&#xff0c;提出一种证据化…

作者头像 李华
网站建设 2026/10/22 13:06:48

美团核销 Java 怎么写,签名幂等和 prepare 到 consume 示例, 无限聚核

核销服务由无限聚核提供&#xff0c;美团、抖音团购核销一站式接入。搜「美团核销 Java示例」时&#xff0c;结果里常混着不确定的 SDK 帖、过期字段说明和「直接 msconsume」半截示例。开发真正卡的是&#xff1a;走自研开放平台还是接第三方统一接口&#xff1f;prepare → c…

作者头像 李华
网站建设 2026/10/22 13:03:49

彭大帅的AI运维助手——杀软误报攻防记

一个独立开发者的Python程序与杀毒软件的四回合较量 Defender锁文件、360拦UCRT释放、TEMP劫持放大拦截 治本方案&#xff1a;打包剔除系统自带DLL&#xff0c;比加白名单更稳 全部战例来自真实发版&#xff0c;含完整诊断过程与修复commit 目 录 第一章 引子&#xff1a;独…

作者头像 李华