智能指针模版类

有三个智能指针,auto_ptr(弃用)、unique_ptr、shared_ptr.
智能指针可以自动跟踪动态内存,在其过期时自动释放。

一、shared_ptr

用于new创建的对象,而不适用于new[]创建的对象,
用于多个指针共享一个地址的情况。

#include<memory>

std::shared_ptr<int> int_ptr=new int;
//std::shared_ptr<int> int_ptr(new int);

二、unique_ptr

用于只存留一个指针指向最后地址的情况,
同时unique_ptr有指向new[]的版本。

unique_ptr<ArrTest[]> p(new ArrTest[10]);

其他

如ps是一个智能指针对象,则可以对它:

解除引用*ps
访问结构成员ps->index
将它赋给同类型常规指针

unique_ptr为右值时,可将其赋给shared_ptr
unique_ptr赋给另一个unique_ptr时,需要使用移动构造函数std::move()

转载于:https://www.cnblogs.com/chendeqiang/p/11484290.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值