社区
语言基础/算法/系统设计
帖子详情
对象如何销毁?大家给讲讲吧,初学者渴望你的帮助!
pcfans007
2006-03-22 01:09:11
经常在代码中看到有的用同赋值NIL销毁,有的用DISPOSE有的用FREE,有的用DESTROY有的用FREEANDNIL,甚至还有用两者的组合的,比如先赋值NIL,再用FREEANDNIL的也有,弄的我脑子都乱了,到底怎么用啊,请专家们给总结一下吧!谢谢了!
...全文
176
5
打赏
收藏
对象如何销毁?大家给讲讲吧,初学者渴望你的帮助!
经常在代码中看到有的用同赋值NIL销毁,有的用DISPOSE有的用FREE,有的用DESTROY有的用FREEANDNIL,甚至还有用两者的组合的,比如先赋值NIL,再用FREEANDNIL的也有,弄的我脑子都乱了,到底怎么用啊,请专家们给总结一下吧!谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Tensionli
2006-03-22
打赏
举报
回复
对于对象通常用free和destory来销毁,二者的区别是,Destroy会直接释放对象,而Free会检查该对象是否存在,如果对象存在,或者对象不为nil,它才会调用Destroy。因此,程序中应该尽量使用free来释放对象,这样更加安全一些。但要注意,free也不会自动将对象置为nil,所以在调用free之后,最好是再手动将对象置为nil。
而freeandnil过程相当于object.free;object := nil;
对于使用new来分配的内存,一般使用dispose来释放空间。
对于使用getmem分配的内存,一般使用freemem来释放。
小呆之家
2006-03-22
打赏
举报
回复
对于指针的操作:
New() dispose()
GetMem() FreeMem()
上面在一行的是必要成对使用的;前都分配内存,后者回收内存;
常用的技巧为:
try
new();
finally
Dispose()
end;
对于对象操作:
Create()//----创建对象,分配内存空间;
Free() FreeAndNil() Destory()//----回收内存,用任一个就可以了,但一般情况下都用前二者.
为与对象操作安全性有关.在回收一个对象实例时,应先判断这个对象实例是否存在,否则会产生内存访问错的错误.常用的技巧为:
var
frm:Tfrom;
try
frm:=tform.create(nil);
......
finally
freeandnil(frm);
//frm.free;
//frm:=nil;
//不要使用析构方法DESTORY来回收.易造成错误的.
//实际上,用FREE方法时:是先判断这个对象实例是否存在
//如果存在,则调用对象的析构方法来回收内存了.
end;
pcfans007
2006-03-22
打赏
举报
回复
谢谢,尽快结贴
阿发伯
2006-03-22
打赏
举报
回复
对于Delphi对象来说,应该使用free,有时为了防止释放已经free的对象,在free后在赋予nil一边检查,为简便就直接使用FreeAndNil函数了。
对于接口来说,一般是系统自动释放,如果需要手工释放,使用nil,不能使用Free
bluz
2006-03-22
打赏
举报
回复
补充一点,new调用了getmem,dispose调用了freemem.
Java绝对好文,转载的!(转载)
http://www.blogjava.net/yangaiyou/archive/2008/12/12/245899.html想来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,
帮助
大家在技术的道路上少一点弯路。...
C++入门基础(万字详解!!!)
C语言是结构化和模块化的语言,适合处理较小规模的程序。...因此:C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于
对象
的程序设计,还可以进行面向
对象
的程序设计。
Java面试题大全(2021版)
发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有
帮助
哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java基础知识面试题 1、Java概述 ①. 何为编程 ...
Java 编程经验(牛人写的) 上
来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,
帮助
大家在技术的道路上少一点弯路。说得伟大一点是希望大家为软件学院争气,其实最主要的还是大家自身的进步提升??...
一个计算机专业学生几年的Java编程经验汇总
想来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,
帮助
大家在技术的道路上少一点弯路。说得伟大一点是希望大家为软件学院争气,其实最主要的还是大家自身的进步提升??...
语言基础/算法/系统设计
16,748
社区成员
33,247
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章