请教一个有关类中的构造函数的基本问题! (100分)

  • 主题发起人 主题发起人 greenhand00
  • 开始时间 开始时间
G

greenhand00

Unregistered / Unconfirmed
GUEST, unregistred user!
我是Delphi的初学者,
书中的例子中
unit Ellipse;
interface
uses Controls,Classes,Messages,Graphics,Math;
type
TEllipse=class(TGraphicControl)
private
procedure RepaintRequest;
public
constructor Create(AOwner:Tcomponent);override;
procedure SetPen(Value:TPen);
procedure SetBrush(Value:TBrush);
protect
procedure Paint;override;
end;
implement
....................



在定义类中的构造函数有这么一句:
constructor Create(AOwner:Tcompnent);override;
其中的参数我不知道怎么理解?请指教!
 
用到父类的同名函数, 你要继承它时用 Override
不继承它,你要写个新的,就不用 Override
 
constructor Create(AOwner:Tcompnent);override;
其中的参数AOwner:Tcomponent是什么意思?
 
一般在创建类实例时,要给这个实例定个所有者,在这个Owner释放时会自动把这个实例也释放
你也可以赋为nil,让它没有所有者,但这样你必须自己在使用完后把它释放
 
指明由谁来释放这个类实例。
 
AOwner指明了组件的拥有者。 Owner负责Free组件
 
基本同意xianjun.
Aowner是一个TComponent类,也就是self的所有者,self.owner的值。负责管理当前控件,但
说owner负责free组件的说法不太准确。应该是说self的生命周期在owner生命期内,静态创建的
组件owner free时会自动free,动态创建的组件必须在owner生命周期内手动free.(重载owner destructor destory,如未free,则free)
 
greenhand00::你的问题已过期,要继续请结束,否则请提前,谢谢
 
后退
顶部