Delphi里析构函数一定要自己调用吗

 我来答
windblast
2017-02-15 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13617
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
试谈下个人的理解:

1、用类的 Create 构造函数来建立一个类的实例之后,通常需要调用 free 等函数来保证类的实例的注销。在使用对象之前,必须先建立一个对象,并且及时销毁对象(destory),以释放资源。

2、如果在建造类的实例时,给类(组件)指定了“宿主”(比如,Form窗体类),则由“宿主”来管理对象的销毁,即不必手动调用该组件的析构函数。

当没有确定类(对象)的实例有可以进行统一管理对象销毁之前,一般都需要手动调用析构函数来保证对象的安全销毁。简单来说,就是手动编写代码生成的,通常也需要手动编写代码注销。

举例来说:当在 IDE 设计器里,生成的窗体以及窗体中的各个组件,这些不需要调用析构类函数释放资源;而在代码当中编写的,就需要自己编写代码进行释放为好。

在 delphi 语言里,析构函数为 destroy,但安全的调用不是使用 destory,而是使用 free 或是 freeAndNil,在 free 的代码中有判断对象是否存在的操作, 所以用 free 比用 destroy 安全。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式