C++ 智能指针

C++智能指针用于更安全地管理动态分配的对象,防止内存泄漏。本文重点讨论shared_ptr和weak_ptr。shared_ptr允许多个指针共享同一对象,自动管理引用计数,适用于参数传递和函数返回。而weak_ptr是一个弱引用,不改变引用计数,用于解决shared_ptr的循环引用问题。

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

C++ 智能指针

为了更安全地使用动态对象,标准库定义了两个只能指针类型来管理动态分配的对象当一个对象应该被释放时,指向它的智能指针可以确保自动地把它释放。
理论上来说,一共有三个类型:

shared_ptr
unique_ptr
weak_ptr

本文主要介绍shared_ptrweak_ptr


简介

shared_ptr允许多个指针指向同一个对象。
unique_ptr则“独占”所指向的对象。
weak_ptr是一个弱引用,指向由shared_ptr管理的对象,但是不改变引用计数


shared_ptr

首先要介绍make_shared()函数,顾名思义就是在动态内存中分配一个对象,并返回shared_ptr,说白了就是让一段动态内存让shared_ptr去管理,使用的时候对特定类型构造时必须与其构造函数相匹配,例如:

shared_ptr<int> p = make_shared<int>(1);

shared_ptr允许多个指针指向同一个对象,并且还有一个与之关联的引用计数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值