delphi类继承的疑惑 ( 积分: 50 )

  • 主题发起人 主题发起人 dysysu
  • 开始时间 开始时间
D

dysysu

Unregistered / Unconfirmed
GUEST, unregistred user!
TApple是TFruid的子类
TFruid有一个属性id
TApple有一个属性name


function produceID(var fruid:TFruid);
begin
fruid.id:='12345678';
end;

apple:TApple;
fruid:TFruid;
apple:=TApple.Create;
fruid:=apple as TFruid;

produceID(fruid);

apple.name:='This is an apple';

showMessage(intTOstr(apple.id));
showMessage(apple.name);

这样结果不正确
 
问题已解决
 
那我来接分
 
fruid:=apple as TFruid
浪费

intTOstr(apple.id))
????

接分
 
fruid:=apple as TFruid
浪费
为什么浪费?


分配好分数后要怎么给分?
 
呵呵 ,和我一样,前天刚发完贴,马上想到错误的出处,再调试果然OK
以后得注意啦,多想想再发贴哦。
 
fruid是apple 的基类,根本不用强制转换....
只有从父类向子类转换时才用强制转换
l:Tlist;
e:Tedit;

e:=Tedit.create;
l:=Tlist.create;

l.items.add(e);

e:=l.items[0] as TEdit
//l.items[0] 为Tobject类型.从父类向子类转换.
 
多人接受答案了。
 
后退
顶部