tw0965.pp 946 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. { %version=1.1 }
  2. {$ifdef fpc}{$mode objfpc}{$endif}
  3. type
  4. pobj = ^tobj;
  5. tobj = object
  6. public
  7. constructor init;
  8. destructor done; virtual;
  9. procedure proc1 (a: integer);overload; virtual;
  10. procedure proc1 (a: double);overload; virtual;
  11. end;
  12. pobj2 = ^tobj2;
  13. tobj2 = object (tobj)
  14. procedure proc1 (a: integer);overload;virtual;
  15. end;
  16. var
  17. error : boolean;
  18. constructor tobj.init;
  19. begin
  20. end;
  21. destructor tobj.done;
  22. begin
  23. end;
  24. procedure tobj.proc1 (a: integer);
  25. begin
  26. write('tobj.proc1(a:integer) called: ');
  27. writeln (a);
  28. end;
  29. procedure tobj.proc1 (a: double);
  30. begin
  31. write('tobj.proc1(a:double) called: ');
  32. writeln (a);
  33. error:=false;
  34. end;
  35. procedure tobj2.proc1 (a: integer);
  36. begin
  37. write('tobj2.proc1(a:integer) called: ');
  38. writeln (a);
  39. end;
  40. var
  41. obj1: pobj;
  42. obj2: pobj2;
  43. begin
  44. error:=true;
  45. new (obj1, init);
  46. new (obj2, init);
  47. obj2^.proc1 (444.5555);
  48. if error then
  49. halt(1);
  50. end.