如何比较两个 TPoint 类型, 直接用 = 不行(50分)

  • 主题发起人 主题发起人 savetime
  • 开始时间 开始时间
S

savetime

Unregistered / Unconfirmed
GUEST, unregistred user!
难道记录型要将子区域一个一个比较
 
if (point1.x=point2.x) and (point1.y=point2.y) then ......

DELPHI我觉得应该给PASCAL增加算符重载,DELPHI中为什么仅能重载[],真是......
 
没有操作符重载啊
不过用[]还是有方法的:
property items[index]:YourType read XXX write XXX;
 
比较内存,
comparemem
 
tpoint是一个结构,不是类!
 
自己做个函数吧,可以重载一些常用记录类型数据的比较。
 
tpoint实际上是一段内存的首地址,是没有类型的指针。
如果要比较,必须转换成同一种类型的指针。
 
to yeskert1
如何转换
 
直接赋值
var p:Tpoint;
sp,tmp:^string;
begin
new(sp);
sp^:='asdf';
p:=sp;
tmp:=sp;
tmp:=p;
...
end;
 
只能手工比较记录成员,,,,这是我的方法,众大侠有更好的方法我领教,,,,
 
多人接受答案了。
 
后退
顶部