如何复制类?
我有一个类
TID = class(TComponent)
public
id: integer;
name: string;
end;
var
aid,bid: TID;
aid := TID.Create(nil);
bid := TID.Create(nil);
aid.id := 4;
aid.name := 'aa';
现在我想把aid的所有内容复制到bid
bid.assign(aid);
上一句总是报错 Cannot assign a TID to a TID.什么原因?
问题点数:0、回复次数:10Top
1 楼birdhaha(haha)回复于 2004-12-03 13:57:15 得分 0
你的TID类没有assign()这个方法吧?Top
2 楼bee2518(迷茫ing)回复于 2004-12-03 13:58:44 得分 0
自定义类的Assign是自己定义的方法才可以用
你去看看那些TFont之类的例子Top
3 楼birdhaha(haha)回复于 2004-12-03 14:00:04 得分 0
写个assign()方法吧。
TID = class(TComponent)
public
id: integer;
name: string;
procedure assign(myId:Tid);
end;
procedure assign(myId:Tid);
begin
id:=myId.id;
name:=myId.name;
end;Top
4 楼nevid(nevid)回复于 2004-12-03 14:05:13 得分 0
那有没有办法将任意两个相同的类互相复制?Top
5 楼zeroxing(胸无半点墨,腰有万贯财;此般理想高,怎奈做不到!)回复于 2004-12-03 14:13:19 得分 0
深度拷贝,恩,目前好不知道怎么去做。Top
6 楼yinzhiw(不懂OOP)回复于 2004-12-03 14:16:01 得分 0
你必须自己去覆盖这个Assign()方法Top
7 楼36(蛀虫写手)回复于 2004-12-03 14:27:59 得分 0
Assign()方法继承自TPERSISTENT,BUT NOT TCOMPONENT。Top
8 楼nieyc()回复于 2004-12-03 14:45:58 得分 0
“那有没有办法将任意两个相同的类互相复制?”
相同的类怎么理解,父类与子类算相同吧?没有关系的两个类算相同吗?再思考一下,谁便写个Assign会出错的。Top
9 楼largewang(成都:王臻义[老王][C#学习中断])回复于 2004-12-03 16:07:43 得分 0
TID = class(TComponent)
published
property id: integer read FID write FID;
property name: string read FID write FID;
end;
用assign()Top
10 楼tjkjdx(zy)回复于 2004-12-03 17:51:43 得分 0
mark~~~~~
Top




