shared_ptr的详解

本文介绍了C++中的智能指针,特别是shared_ptr的使用。shared_ptr可以自动管理动态分配的对象,并且支持多个指针指向同一对象。文章提到了make_shared的安全分配方式,以及shared_ptr的引用计数机制。同时,也提及了unique_ptr和weak_ptr的相关知识,强调了避免混合使用普通指针和智能指针,以及正确使用删除器的重要性。
摘要由CSDN通过智能技术生成

参考:《C++ primer 第五版》

                https://www.cnblogs.com/boydfd/p/5146432.html (需要多看几遍)
前言

程序中常用的存储形式如下。

静态内存:static对象,类static的数据成员,函数外的变量。

栈内存:函数内的非static对象。

自由空间或堆:动态分配的对象,程序控制生命周期。

动态内存与智能指针

从前,我们使用运算符new和delete来管理动态内存。但是使用很容易出错误,造成泄露。

新标准提供两个智能指针,shared_ptr和unique_ptr,来自动释放管理的动态对象。前者可以多个指针指向同一个对象,后者独占对象。另外还有weak_ptr,是一个伴随类,弱引用,指向shared_ptr管理的对象。

常见的用法(我们注意其中的get(),我觉得智能指针,并不是指针可以看作是指针的管理器):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值