Delphi的对象注销方法Destroy和free的区别


======================================================
注:本文源代码点此下载
======================================================

delphi的对象注销方法destroy和free的区别

当您使用完对象后,您应该及时撤销它,以便把这个对象占用的内存释放出来。您可以通过调用一个注销方法来撤销您的对象,它会释放分配给这个对象的内存。

delphi的注销方法有两个:destroy和free。delphi建议使用free,因为它比destroy更为安全,同时调用free会生成效率更高的代码。

您可以用下列的语句释放用完的employee对象:

employee.free;

和create方法一样,free方法也是temployee从tobject中继承过来的。把您的注销放在try…finally程序模块的finally部分,而把对象的程序代码放在try部分是编程的好习惯。这样,即使您的程序代码在使用对象时发生了异常事件,也会确保您为这个对象分配的内存会被释放。

二者的区别是,destroy会直接释放对象,而free会事实检查该对象是否存在,如果对象存在,或者对象不为nil,它才会调用destroy。因此,程序中应

该尽量使用free来释放对象,这样更加安全一些。(但要注意,free也不会自动将对象置为nil,所以在调用free之后,最好是再手动将对象置为nil。)

tobject类有一个虚拟的destroy虚构函数和一个非虚拟的free函数。free函数中是调用destroy的。因此,当我们对任何对象(都是tobject的子类对象)调用.free();之后,都会执行tobject.free();,它会调用我们所使用的对象的析构函数destroy();。这就保证了任何类型的对象都可以正确地被析构


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值