继承??(0分)

  • 主题发起人 主题发起人 qddmh
  • 开始时间 开始时间
Q

qddmh

Unregistered / Unconfirmed
GUEST, unregistred user!
TCustomGrid = class;
是否表示TCustomGrid从TObject继承?
 
不是,这是表示其只是一个类,没有任何的父类,TObject是VCL的老祖先,但是class是
语言的类的封装而已
 
TCustomGrid = class;
表示声明一个类.然后可以再写成
TCustomGrid = class(TXXX)
上面那句话表示一定要建立这个类而已.
他的祖先类不一定是什么但是最老的祖先类一定是TObject.
不信你可以做个实验
procedure showmessageClass(k:tclass);
begin
showmessage(k.ClassParent.ClassName);
if k.ClassParent.ClassName<>'TObject' then
begin
showmessageClass(k.ClassParent);
end;
end;
其实建立无祖先类的类可用这个方法建立
Pk=Tk^;
TK=Object
public
name:string;
end;
..
var
k:pk;
new(pk);
showmessage(pk.name);
dispose(pk);
 
TCustomGrid = class;
这是一个前置声明,
这说名在TCustomGrid = class(TCustomControl)
的声明之前有其他类用到了TCustomGrid.
这个用法和函数的前置声明是一个道理。
 
后退
顶部