a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 73|回复: 0

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

[复制链接]
发表于 2012-8-2 08:51:15 | 显示全部楼层 |阅读模式
发现大家对写库很热衷。不过,写一个库,用C++最麻烦的事情,就是你new完了要记着delete。不过,这么傻瓜化的操作,有没有办法让电脑自动完成呢?当然是可以的。思路有以下三点:
7 I6 u; [  I% f7 r. T/ t9 [  Parent对象。
% f; c4 q. V& _2 L  每一个对象,都要有唯一的parent,当parent析构时,要带动他所有的children析构。
5 V7 A) i+ N2 I' r! t  q  好处: , G+ s" p) j0 f" w/ J/ y: `, a9 z
  实现简单,且具有逻辑性。
" ]2 f! a; M$ y$ v( Q5 a! N  比如:一个窗口,他的按键,就应该是这个窗口的children,当窗口析构的时候,按键也必须析构。
5 v; I' C/ K5 h+ d  坏处: : Z! m+ z0 j+ P7 `- l
  不可以有复制构造函数…… 5 d# o( G$ C. A/ \" o0 [
  这个也很好理解。A-->B-->C中,a是b的parent,b是c的parent,如果允许复制,B复制了个D,那C就有两个parent,究竟怎么析构呢?
* w+ s( a' v- R8 `  开源库的实现:   Qt实现了这种方式的内存管理,尤其是对GUI框架,十分适用。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 07:39 , Processed in 0.270667 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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