Chinaunix首页 | 论坛 | 博客
  • 博客访问: 298971
  • 博文数量: 148
  • 博客积分: 4365
  • 博客等级: 上校
  • 技术积分: 1566
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-05 21:38
文章分类
文章存档

2014年(2)

2013年(45)

2012年(18)

2011年(1)

2009年(54)

2008年(28)

我的朋友

发布时间:2012-12-24 11:26:23

确保new出的对象被及时保存,避免中间语句优化或其它原因发生异常时,new出的对象没有存到智能指针对象中。......【阅读全文】

阅读(275) | 评论(0) | 转发(0)

发布时间:2012-12-24 11:08:09

new和delete的成对使用,new出数组时就一定要 delete[],避免泄露。避免将数组typedef成新类型。typedef int IA4[4];这样IA4类型的动态对象在释放时需要使用delete[]而不是普通的delete。最后推荐了C++中尽量使用容器替代数组。......【阅读全文】

阅读(302) | 评论(0) | 转发(0)

发布时间:2012-12-24 11:01:47

为RAII等资源管理类提供一个直接获取其管理的“底层”资源的接口。class Res_Man{............private:res obj;}虽然大多时候直接操作的是Res_Man对象,但可能用户有时需要获取res对象进行复制等,所以可显示的提供一个get接口,或再封装后提供隐式转换接口。......【阅读全文】

阅读(269) | 评论(0) | 转发(0)

发布时间:2012-12-24 10:36:14

Resource Acquisition Is Initialization (RAII).面对资源管理,上个条款中推荐使用。一定要注意此类的对象的copy行为,可以彻底拒绝(考构等声明为私有),更为常见的是使用引用计数(reference counting),来统计,计数清0时彻底释放资源(想一下协议栈IP包的复制管理)。再次推荐了shared_ptr。......【阅读全文】

阅读(754) | 评论(0) | 转发(0)

发布时间:2012-12-24 10:07:57

手动new出来的对象极容易忘记使用delete释放,或者增量开发时在delete前加入了return或抛出异常,造成资源泄漏。因为一个类对象销毁时析构函数总是会调用到,所以强烈推荐使用对象来管理资源。Resource Acquisition Is Initialization (RAII) 资源获取最好就是在初始化时,也是形容此理念。最后推荐了TR1的shared_ptr和现有标准中的auto_ptr(已经被前者替代了)。......【阅读全文】

阅读(186) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册