boost智能指针及chromium指针管理WeakPtr

本文介绍了智能指针在C++中的重要作用,特别是boost库中的scoped_ptr、shared_ptr和weak_ptr,以及Chromium中的WeakPtr。通过对boost中不同智能指针的比较和使用示例,阐述了它们的特性和适用场景。Chromium的WeakPtr用于解决多线程任务中的对象生命周期管理问题,与boost的weak_ptr在实现和目的上有显著区别。

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

       之前一直有用到智能指针,但一直没有真正去了解其内部的实现,并且之前用到的很多智能指针实现方式是经过封装过的,如Comptr这类。今天在研究chromium中的代码是看到了其自定义的WeakPtr的实现,感觉自己对这部分知识不甚了解,趁着这个机会,好好把跟智能指针相关的知识理清楚。在这篇文章会重点讲讲boost标准库和chromium中一些定义及使用。
       首先,还是在boost中查看相关智能指针的实现,在C++中为了更好的管理内存,特别是管理那些动态分配且被多个对象拥有的对象,boost提出了一套智能指针(smart pointers)的标准。
       boost中提出了6种智能指针的使用方式,下面表格中的内容是从官方文档中抠出来的,可以事先做一个简单的了解。
scoped_ptr <boost/scoped_ptr.hpp> 单个对象的唯一的一个拥有者,不可复制。
scoped_array <boost/scoped_array.hpp> 数组对象的唯一的一个拥有者,不可复制。
shared_ptr <boost/shared_ptr.hpp> 多个指针共享单个对象。
shared_array <boost/shared_array.hpp>
多个指针共享一个数组对象。
weak_ptr <boost/weak_ptr.hpp> 一个被shared_ptr所拥有的对象的观察者(不拥有它)。
intrusive_ptr
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值