网站大量收购闲置独家精品文档,联系QQ:2885784924

C_对象生命周期的维护.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C_对象生命周期的维护.pdf

信息与电脑 2011年6月刊 China ComputerCommunication 算法语言 C++对象生命周期的维护 张 旸 (杭州青芝网络有限公司,浙江杭州 321004) 摘要:在C++编程过程中,关于内存比较容易出现的错误就是内存泄漏和野指针,这两个问题实际上都是因为对于对象的生命周期管理不当 导致的。如果一个对象其生命周期应该结束,但是对象没有释放,那么导致了内存泄漏的错误,如果一个对象的生命周期还没有结束,但是对象 已经被释放,那么往往导致野指针异常,所以对于程序中对象的生命周期作一个好的规划是一个合格的C++程序员必须具备的能力。本文通过介 绍和分析几种对象生命周期的管理方式,试图给出一种综合管理程序中对象系统生命周期的方法。 关键词:C++;内存泄漏; 野指针;对象生命周期;隐性内存泄漏;JAVA ;垃圾回收;引用计数 中图分类号:TP312 文献标识码:A 文章编号:1003-9767(2011)06-0171-02 1.对象之间的引用关系 class FreeNotification { 在C++中,对象有多种关系,包括继承,包含,当然还有引用, public: 本文重点讨论的是引用关系。一般的,有对象A和B,如果A对象为了 void regFreeNotification(FreeNotification * lpObj){ 实现其功能需要依赖B,但同时B并不是A的一部分,即B的内存空间 //向m_aryFreeNotiificationObjects列表中添加一个对象 并不包含于A之中,我们认为A引用了B。A引用B,意为着在A需要的 …; 时候,A可以找到B,那么最常见的方法,就是A拥有B的指针。 } 1) 引用关系可以是动态的,在这种情况,A和B的生命周期是独 void unregFreeNotification(FreeNotification * lpObj){ 立的,甚至A和B的引用关系也是动态的,就是说A引用了B,如果B //从m_aryFreeNotiificationObjects列表中删除一个对象 释放了,A就可以不引用B,当然即使B不释放,由于实际业务逻辑的 ; 需要,A也可以在程序运行的过程中不再引用B。 } 2) 引用关系可以是双向,即A引用了B,B同时也可以引用A,A virtual void freeNotification(FreeNotification * lpObj) = 0; 和B相互拥有对方的指针。 private: 3) 对于多个对象的引用关系可以构成一个有向图,如A,B,C三 CArray m_aryFreeNotiificationObjects; 个对象,A可以同时引用B,C。B和C也是。

文档评论(0)

tangtianxu1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档