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

相关推荐
毕设源码-朱学姐4 小时前
【开题答辩全过程】以 python基于Hadoop的服装穿搭系统的设计与实现为例,包含答辩的问题和答案
开发语言·hadoop·python
爱砸键盘的懒洋洋4 小时前
Python第四课:数据类型与转换
开发语言·python
saber_andlibert5 小时前
【C++】——new和delete与malloc和free的区别
c语言·c++
维度攻城狮5 小时前
C++中的多线程编程及线程同步
开发语言·c++·性能优化·多线程·线程同步
拾光Ծ5 小时前
【C++哲学】面向对象的三大特性之 多态
开发语言·c++·面试
小欣加油5 小时前
leetcode 494 目标和
c++·算法·leetcode·职场和发展·深度优先
大飞pkz5 小时前
【设计模式】解释器模式
开发语言·设计模式·c#·解释器模式
Miki Makimura5 小时前
基于网络io的多线程TCP服务器
网络·c++·学习
Dyan_csdn5 小时前
Python系统设计选题-49
开发语言·python
jc06206 小时前
项目实战5:聊天室
c++