Cherno C++ P43 C++的智能指针

本文介绍了C++中的智能指针,包括unique_ptr、shared_ptr和weak_ptr的使用。unique_ptr是作用域指针,不支持复制,超出作用域时自动销毁;shared_ptr通过引用计数实现共享,所有引用消失后才删除对象;weak_ptr则不增加引用计数,用于无所有权的弱引用。文章结合具体例子探讨了它们在内存管理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

YouTube视频链接

C++的智能指针

本文是ChernoP43视频的学习笔记。
  智能指针是实现分配内存、释放内存这一过程自动化的一种方式。若使用智能指针,当我们调用new时不需要调用delete,甚至不需要调用new。智能指针本质上是一个原始指针的包装,当创建一个智能指针,它会调用new并为其分配内存,基于这个智能指针的内存会在某一时刻自动释放。

unique_ptr(优先)

  unique_ptr是作用域指针,超出作用域时它会被销毁,然后调用delete。我们不能复制一个unique_ptr,因为如果复制一个unique_ptr会有两个指针,两个unique_ptr指向同一个内存块。如果其中一个死了,它会释放那段内存,而另一个unique_ptr指针就会指向被释放的内存。
  要访问智能指针,首先要包括memory头文件。如果想要在特定的作用域下(两个大括号)创建一个unique_ptr来分配Entity,可以调用构造函数然后输入new Entity()。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗曼史的逝世

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值