More Effective C++之10
来源:互联网 发布:淘宝名称优化 编辑:程序博客网 时间:2024/05/29 03:18
条款10:在constructors内阻止资源泄漏(resource leak)
这里需要一个前提:
char* ptr = NULL;
delete ptr;
上面的代码是安全的,即删除一个NULL指针是无害的。
抛弃条款中原来鼓吹auto_ptr的内容,我们只涉及普通指针。那么,这么做:
class MyTest
{
public:
MyTest():m_aPtr(0),m_bPtr(0)
{
try
{
m_aPtr = new A;
m_bPtr = new B;
}
catch (...)
{
CleanUp();
throw;
}
}
~MyTest(){CleanUp();}
private:
void CleanUp()
{
delete m_aPtr;
delete m_bPtr;
}
A* m_aPtr;
B* m_bPtr;
};
关于const成员指针,只能在成员列表中初始化,那么定义一个init函数,将可能出现异常的东西放在这里面,然后在初始化列表外调用init函数。
- More Effective C++之10
- 《more effective c++》读书笔记
- More Effective C++(2)
- 《More Effective C++》读后感
- 《More Effective C++》笔记
- 《Effective C++》和《More Effective C++》汇总
- C++之禁止异常信息传递到析构函数外面(10)---《More Effective C++》
- 《More Effective C++》读书笔记一
- 《more effective c++》笔记4
- More Effective C++:类型转换
- More Effective C++:类型转换
- More Effective C++:Item 27
- more effective c++--引用计数
- 读More Effective C++(1)
- More Effective C++:Item 27
- 《More Effective C++》读书笔记-异常
- 《More Effective C++》读书笔记-效率
- 《More Effective C++》读书笔记-技术
- 好久没来了
- 转贴:纪念胡新宇君
- 自动调整listview标题头宽度的二种方法
- 人性的三个境界
- 黑匣人生
- More Effective C++之10
- 旧日的足迹
- 一叶知秋
- 多线程服务程序编程心得
- 程序设计1
- 一段真实在个人经历, 给那些迷失方向的朋友
- 利用PHP的GD库生成高质量的缩略图
- 常用网站介绍
- ArcIms开发学习(配置文件)