请问一个关于Destroy的问题 如果在Destroy函数中途退出(第一句代码就是退出)destructor destroy();begin if {某条件} then exit; //.........end;那这个对象还能不能使用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加上继承父类的INHER就可以了 仍然可以使用。如if working then Exitelse inherited Destroy这样写是可以的。 那是不是说我可以在destroy函数中加入引用计数的判断?例如变量a,b位于不同的函数,但同时指向同一个对象,则:a.Free; //此时,b 仍然可以使用......在程序的另一个位置(不在同一个对象或函数中)b.Free;//现在才真正释放了对象请问,我上面所想的正不正确? to King_Dragon(我是谁):我是想做一个有引用计数功能的类,不知有没有什么好建议 你可以用class function来实现啊! to eulb(执子之手,与子偕老) :如何实现?能否给出简单例子? 建议参阅Delphi6 Help -> Object Pascal Reference -> Classes and objects -> Class references -> Class methods to cnsuyong(小可):我并不是不知道怎样写类方法,而是不知道如何实现一个有引用计数功能的类比较好。请看清问题。谢谢。 前面已经有朋友评论你的想法比较怪异。我也苟同。如果你真的要实现类似引用计数的功能,则应该在其他的成员中设置条件判断(满足销毁条件时就调用析构器,否则不调用),而不要在析构器中判断就行了。前面有人建议使用class function目的大概也在此列。析构器自TObject继承而来,其根本作用就是要销毁实例对象。试问,你是否还考虑在构造器Create中添加Exit以达到不创建的目的?这根本不是一个技术问题,而是一个程序结构逻辑思维方式的问题。Inprise提供有关长串的阐述可以作为佐证:当引用计数为0时则释放相关内存。而并不是“当释放相关内存而发现引用计数大于0时则撤消释放操作。”搞清楚这两个逻辑,你的问题也就迎刃而解了。 to cnsuyong(小可) :谢谢小可的耐心指导。其实,你说的这些我都已经考虑过,这是我想做一个有引用计数的Singleton ,Client端调用时无需知道它是有引用计数的,只需用完以后和普通类一样Free 即可,就是说内部的实现对调用者是透明的。所以才有今天的问题。还请各位高手多多发言讨论一下这个问题。小可,你有msn帐号吗?我们可以用它多加交流。我的:[email protected] 关于在前台取后台的记录的问题 MDI模式下,在显示MDI子窗体时,如果MDI子窗体已经显示了则不再新建此MDI子窗体..... fastreport免预览打印之迷惑 用ADO连接数据库做c/s系统时,有那些方法可提高系统的运行性能 招聘北京应届毕业生。。。!!! 高手出来我散500分,终结DELPHI,TCP粘包问题 delphi6中 Corba data object 中怎么用ado呢? 为什么总不行? 一个奇怪的问题!(附代码) 关于系统挂钩? 求助:请把C语言转成delphi的 高分求救? 关于MDI窗体的问题?
if working then
Exit
else
inherited Destroy
这样写是可以的。
//此时,b 仍然可以使用......在程序的另一个位置(不在同一个对象或函数中)
b.Free;
//现在才真正释放了对象请问,我上面所想的正不正确?
我是想做一个有引用计数功能的类,不知有没有什么好建议
如何实现?能否给出简单例子?
Delphi6 Help ->
Object Pascal Reference ->
Classes and objects ->
Class references ->
Class methods
我并不是不知道怎样写类方法,而是不知道如何实现一个有引用计数功能的类比较好。请看清问题。谢谢。
如果你真的要实现类似引用计数的功能,则应该在其他的成员中设置条件判断(满足销毁条件时就调用析构器,否则不调用),而不要在析构器中判断就行了。前面有人建议使用class function目的大概也在此列。析构器自TObject继承而来,其根本作用就是要销毁实例对象。试问,你是否还考虑在构造器Create中添加Exit以达到不创建的目的?这根本不是一个技术问题,而是一个程序结构逻辑思维方式的问题。Inprise提供有关长串的阐述可以作为佐证:当引用计数为0时则释放相关内存。而并不是“当释放相关内存而发现引用计数大于0时则撤消释放操作。”搞清楚这两个逻辑,你的问题也就迎刃而解了。
谢谢小可的耐心指导。
其实,你说的这些我都已经考虑过,这是我想做一个有引用计数的Singleton ,Client端调用时无需知道它是有引用计数的,只需用完以后和普通类一样Free 即可,就是说内部的实现对调用者是透明的。所以才有今天的问题。还请各位高手多多发言讨论一下这个问题。小可,你有msn帐号吗?我们可以用它多加交流。
我的:[email protected]