寻找理想的智能指针-C++资源管理综述.docVIP

  • 0
  • 0
  • 约1.35万字
  • 约 16页
  • 2018-12-24 发布于湖北
  • 举报

寻找理想的智能指针-C++资源管理综述.doc

寻找理想的智能指针-C++资源管理综述 摘要:C++中的资源管理历来是比较令人头痛的问题,随着C++0x标准的酝酿,这一问题再次引起了人们的关注。本文将和您一道对C++中的资源管理方式进行回顾,分析与展望,并探讨理想的智能指针应该满足哪些条件。 C的时代 C语言中用指针来表示对资源的引用,这里的资源包括动态内存(堆内存)及同步对象,文件对象等由操作系统抽象出来的对象。有的操作系统中用句柄(handle)表示对这类对象的引用,其语义与指针是相同的。下文中提到的对象如不加说明,一般均指资源对象。 一个用于引用资源的指针(其它的指针,比如指向局部变量的指针或指向指针的指针,这里不予研究)从产生到消亡的整个生存期中可能处于以下四种状态: 空指针 所有指针刚产生时的初始状态都是空指针。C语言中作为局部变量的指针初始状态下包含的值是随机的,但它没有额外的语义,其实质还是空指针,程序员应该显式将其初始化为空,以防止误用。 强指针 强指针是指向某一对象并对其拥有所有权的指针。资源产生后其引用需保存在一个指针中,这个指针这时就是强指针,执行下面的代码后: ObjectA *pObj1 = NULL; pObj1 = new ObjectA; pObj1就成为强指针。资源的所有权可以转移,其表现形式为指针赋值。在强指针的生存期结束之前,它所指向的资源需要被释放,否则会产生资源泄漏。 弱指针 仅

文档评论(0)

1亿VIP精品文档

相关文档