设为首页 加入收藏

TOP

MoreEffectiveC++:防止资源泄漏(二)
2014-11-15 18:00:27 来源: 作者: 【 】 浏览:43
Tags:MoreEffectiveC 防止 资源 泄漏
me), theAddress(address),
 theImage(0), theAudioClip(0)
{
 try { // 这try block是新加入的
  if (imageFileName != "") {
   theImage = new Image(imageFileName);
  }
 if (audioClipFileName != "") {
  theAudioClip = new AudioClip(audioClipFileName);
 }
}
catch (...) { // 捕获所有异常
 delete theImage; // 完成必要的清除代码
 delete theAudioClip;
 throw; // 继续传递异常
}
}


  不用为BookEntry中的非指针数据成员操心,在类的构造函数被调用之前数据成员就被自动地初始化。所以如果BookEntry构造函数体开始执行,对象的theName, theAddress 和 thePhones数据成员已经被完全构造好了。这些数据可以被看做是完全构造的对象,所以它们将被自动释放,不用你介入操作。当然如果这些对象的构造函数调用可能会抛出异常的函数,那么哪些构造函数必须去考虑捕获异常,在允许它们继续传递之前完成必需的清除操作。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇新手入门:c++经典 下一篇C++中控制Windows关机的实用技巧

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: