ub0222.pp 974 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. { Old file: tbs0261a.pp }
  2. { }
  3. unit ub0222;
  4. { test for operator overloading }
  5. { Copyright (c) 1999 Lourens Veen }
  6. { why doesn't this work? }
  7. interface
  8. type mythingy = record
  9. x, y : longint;
  10. c : byte;
  11. end;
  12. myotherthingy = record
  13. x, y : longint;
  14. d : byte;
  15. end;
  16. mythirdthingy = record
  17. x, y : longint;
  18. e : byte;
  19. end;
  20. mynewthingy = record
  21. x, y : longint;
  22. e,f : byte;
  23. end;
  24. operator := (a : mythingy) r : myotherthingy;
  25. operator := (a : mythingy) r : mythirdthingy;
  26. operator = (b : myotherthingy;c : mythirdthingy) res : boolean;
  27. implementation
  28. operator := (a : mythingy) r : myotherthingy;
  29. begin
  30. r.x := a.x;
  31. r.y := a.y;
  32. r.d := a.c;
  33. end;
  34. operator := (a : mythingy) r : mythirdthingy;
  35. begin
  36. r.x := a.x;
  37. r.y := a.y;
  38. r.e := a.c;
  39. end;
  40. operator = (b : myotherthingy;c : mythirdthingy) res : boolean;
  41. begin
  42. res:=(b.x=c.x) and (b.y=c.y) and (b.d=c.e);
  43. end;
  44. end.