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:能够自动识别类型

相关推荐
mjhcsp8 分钟前
C++ KMP 算法:原理、实现与应用全解析
java·c++·算法·kmp
好大哥呀12 分钟前
C++ IDE
开发语言·c++·ide
WW_千谷山4_sch23 分钟前
MYOJ_10599:CSP初赛题单10:计算机网络
c++·计算机网络·算法
BHXDML25 分钟前
JVM 深度理解 —— 程序的底层运行逻辑
java·开发语言·jvm
Wang's Blog28 分钟前
Nodejs-HardCore: 深入解析DBF文件之二进制文件处理指南
开发语言·nodejs
hoiii18728 分钟前
基于LSB匹配的隐写术MATLAB实现程序
开发语言·matlab
J2虾虾35 分钟前
Java使用的可以使用的脚本执行引擎
java·开发语言·脚本执行
幻云201038 分钟前
Next.js指南:从入门到精通
开发语言·javascript·人工智能·python·架构
老马识途2.040 分钟前
java处理接口返回的json数据步骤 包括重试处理,异常抛出,日志打印,注意事项
java·开发语言
CCPC不拿奖不改名1 小时前
网络与API:从HTTP协议视角理解网络分层原理+面试习题
开发语言·网络·python·网络协议·学习·http·面试