tw0965.pp 928 B

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