请教一问题,在子类的Create方法中,inherited;和inherited Create(AOwner);的区别?(100分)

  • 主题发起人 主题发起人 hbjiang
  • 开始时间 开始时间
H

hbjiang

Unregistered / Unconfirmed
GUEST, unregistred user!
请教一问题,在子类的Create方法中,inherited;和inherited Create(AOwner);的联系和
区别?
 
inherited;是调用同名方法!
inherited Create(AOwner);是调用叫Create的方法(有的初始函数不是Create)
 
那一般情况下,inherited和inherited+方法名的功能是一样的了?
那为什么delphi的组件的Constructor里一般都写了 inherited Create(AOwner)呢?
如TScrollingWinControl的Constructor。
 
inherited Create(AOwner)方法主要是为了让AOWNER可以在自己释放时把自己也释放
举个例子,如果你在一个FORM里用代码动态放一个BUTTON
如果你你这么写,在FORM被释放时,BUTTON也被释放,而如果仅仅CREATE;
你就必须在ONCLOSE或ONDESTROY里写代码去释放BUTTON;否则就是内存泄露的一种
 
请不要偏离题目!谢谢
 
[?]onedot说的对,我向你学习;
 
同意SuperJS的
 
对个屁,都不知道问问题的人问的是什么。整个一猪。
下面是我个人非官方的意见,其中主要是“无忌”兄弟的意见
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1161755
即显示调用的是普通调用,隐式的一般是消息。(百试百中, 所以本人同意)
本人对此再做说明:
普通消息如果用隐式调用方式,即没有指定参数,该方法就把调用封装方法时的
参数传递给该继承方法。有时显式的调用是必须的。
如Create
因为它有多种形式: Create; Create(AOwner)

 
后退
顶部