李永亮的专栏

设计改变中国!

More Effective C++之10
条款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++.pdf 高清 目录

2014年02月11日 2.48MB 下载

C++effectiveC++more effective

2016年02月24日 17.73MB 下载

没有更多推荐了,返回首页

不良信息举报

More Effective C++之10

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭