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

相关推荐
沐知全栈开发9 分钟前
PHP 超级全局变量
开发语言
Deng9452013143 小时前
基于Python的职位画像系统设计与实现
开发语言·python·文本分析·自然语言处理nlp·scrapy框架·gensim应用
一只小青团6 小时前
Python之面向对象和类
java·开发语言
qq_529835356 小时前
ThreadLocal内存泄漏 强引用vs弱引用
java·开发语言·jvm
景彡先生6 小时前
C++并行计算:OpenMP与MPI全解析
开发语言·c++
归去_来兮8 小时前
深度学习模型在C++平台的部署
c++·深度学习·模型部署
量子联盟8 小时前
原创-基于 PHP 和 MySQL 的证书管理系统,免费开源
开发语言·mysql·php
pay4fun9 小时前
2048-控制台版本
c++·学习
时来天地皆同力.9 小时前
Java面试基础:概念
java·开发语言·jvm
hackchen9 小时前
Go与JS无缝协作:Goja引擎实战之错误处理最佳实践
开发语言·javascript·golang