C++中的智能指针

1.智能指针简介(smart pointers)

std:: 是标准库(Standard Library)中的命名空间(namespace)的缩写。让C++中知道unique_str等是标准库里的特殊标识符。

2.unique_ptr和shared_ptr

唯一性:多个unique_ptr不可以指向同一个对象

不可以拷贝或赋值,但可以移动

(1)

比喻: 建造了一栋 <int> 类型的房子,里边有一个 100

返回的是指向 <int> 类型的指针 p1, 可以想象成一张纸条,上边写着 <int> 类型房子的 地址。

unique_ptr:是一种特别的纸张,它规定只有一个人能持有它,而且纸张会自己在合适的时候负责拆掉房子

(2)

比喻: 建造了一栋 <Account> 类型的房子,里边有一个 Alice 和 1000

返回的是指向 <Account> 类型的指针 p2, 可以想象成一张纸条,上边写着 <Account> 类型房子的 地址。

unique_ptr:是一种特别的纸张,它规定只有一个人能持有它,而且纸张会自己在合适的时候负责拆掉房子

这里的 int 和 Account 可以看作是房子的类型,"简约"和"豪华"版的房子

(3)

auto p2 = make_unique<Account>("Alice",2000)

auto:能够自动识别类型

相关推荐
西索斯coding3 分钟前
Grok 4.7 调用一直 401 怎么办?不是 Key 过期,是 Authorization 头格式问题——排查全流程 + 修复示例
服务器·开发语言·ai·php
himobrinehacken43 分钟前
位运算揭秘:左右移与符号位陷阱
c语言·c++·算法·安全
SEO_juper1 小时前
hreflang 审计工具:外贸多语言站谷歌SEO的隐性杀手
开发语言·人工智能·爬虫·python·seo
WJ.Polar1 小时前
final、单例类、枚举类、抽象类、接口
java·开发语言
小羊没烦恼!1 小时前
C#综合揭秘——Entity Framework 并发处理详解
java·开发语言·前端·javascript·数据库·mysql·c#
艾iYYY1 小时前
【无标题】
linux·开发语言·网络·操作系统
NetX行者1 小时前
Rust 初体验:一个全栈工程师的编译器“毒打“笔记
开发语言·笔记·rust
我就是不信2 小时前
Java8 lambda 表达式 forEach 如何提前终止?
开发语言·windows·python
Cx330❀2 小时前
深入浅出 Qt 绘图机制:从 QPainter 到四大图像类解析
开发语言·qt·ui·性能优化·图形渲染
信可维3 小时前
AI 读 Word 表格总读错?先查合并单元格和表头这 3 处
开发语言·人工智能·c#·word·软件工程