条款13:以对象管理资源

以对象管理资源的两个关键:

  • 获得资源后立即放进管理对象内。该观念常被称为RAII(资源获取时便初始化)
  • 管理对象运用析构函数确保资源被释放。

auto_ptr弊端:一旦发生复制,被复制的auto_ptr就会被设为null(受auto_ptrs管理的资源绝对没有一个以上的auto_ptr同时指向它),STL容器容不得auto_ptr。

好的替代方案:
shared_ptr(引用计数型智能指针),持续追踪有多少对象指向某笔资源,无人指向它时自动删除该资源。良好地支持copy行为。
弊端:无法打破环状引用,两个已经没被使用的对象彼此互指,好像还处在“被使用”状态。

auto_ptr和shared_ptr不能使用在C++动态分配数组上(编译不会报错)。

工厂函数返回原始指针极易引起资源泄漏,不建议。(条款18)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值