a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 94|回复: 0

[程序员] 2012年软件水平初级资格程序员考试重点知识15

[复制链接]
发表于 2012-8-2 08:51:15 | 显示全部楼层 |阅读模式
引用计数的SharedPtr
( c& a2 i( A$ @* ~: z/ ?% W$ [  指针,进行复制操作的时候,引用计数+1,析构的时候引用计数-1,当引用计数为0的时候,释放空间。
: s: U% ~& j" g+ s  好处:
0 Y1 k& p4 T" j2 `* _  实现简单 2 u, a4 `; U8 A1 ^! y5 L
  坏处: 9 G* y4 L6 A& ~- E# c, Y
  具有循环引用的情况。要引入WeakPtr
" ~' h( w/ a- m: X4 H3 ^1 q  开源库的实现: % J: n) d* H* U6 s& ]
  Qt同时实现了这种技术,Boost也有相关实现。 , p1 @7 ~3 }; `' z8 N
  我因为最近想自己实现一套Signalandslot库,也实现了SharedPtr,开源。 / I4 B" J3 H( [, h& j0 @, [
  地址:http://gitorious.org/raylib/raylib/blobs/master/SmartPtr.hpp
# g( u7 Z  T' E7 M* {! P2 ~- C  评述:   这是C++中最通用的实现手段,如果你要做一套类库,尝试使用SharedPtr,会让事情变得更加简单。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-4 01:16 , Processed in 0.162798 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表