c++11智能指针使用

智能指针(std::share_ptr std::unique_ptr std::weak_ptr)
1、std::shared_ptr,申请的内存不需要自己释放,通过引用计数来达到释放内存,当引用计数为0,会调用析构函数释放内存。使用std::shared_ptr过程中有一种特殊情况考虑到:两对象不能相互引用,否则会造成内存泄漏。解决这个问题可以使用std::weak_ptr,起到一个辅助作用。
2、std::unique_ptr,独享管理对象指针,它所指的对象不能进行拷贝构造、赋值构造,只能通过std::move方式构造。另外std::unique_ptr数据类型可作为函数返回值返回,涉及到编译器优化技术RVO或NRVO,实际上RVO或NRVO对于类对象返回作为函数返回值,不经过拷贝构造。

3、std::function、std::bind封装可执行对象(引入头文件#include <functional>)
std::function------>仿函数
std::bind------->绑定器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值