fork download
  1. program ideone;
  2. {$mode objfpc} // directive to be used for defining classes
  3. {$m+} // directive to be used for using constructor
  4. Type
  5. A = Class
  6. public
  7. val: integer;
  8. vals: string;
  9. valr: real;
  10. public
  11. procedure SetDefaultValue(DefValue:integer);virtual;abstract;
  12. procedure SetDefaultValue(DefValue:real);virtual;abstract;
  13. procedure SetDefaultValue(DefValue:string);virtual;abstract;
  14. end;
  15. Type
  16. B = Class(A)
  17. public
  18. procedure SetDefaultValue(DefValue:integer);override;
  19. end;
  20. Type
  21. C = Class(A)
  22. public
  23. procedure SetDefaultValue(DefValue:string);override;
  24. end;
  25. procedure B.SetDefaultValue(DefValue:integer);
  26. begin
  27. val := DefValue;
  28. vals:= 'integer';
  29. end;
  30.  
  31. procedure C.SetDefaultValue(DefValue:string);
  32. begin
  33. vals := DefValue;
  34. val:= -1;
  35. end;
  36.  
  37. var
  38. bb,cc : A;
  39.  
  40. begin
  41.  
  42. bb := B.Create;
  43. bb.SetDefaultValue(10);
  44. {bb.SetDefaultValue('sdfsdf');}
  45. writeln(bb.val, ' ', bb.vals);
  46. cc := C.Create;
  47. {cc.SetDefaultValue(10);}
  48. cc.SetDefaultValue('sdfsdf');
  49. writeln(cc.val, ' ', cc.vals);
  50.  
  51. cc.SetDefaultValue(10);
  52. end.
Runtime error #stdin #stdout 0s 264KB
stdin
Standard input is empty
stdout
10 integer
-1 sdfsdf
Runtime error 211 at $08048209
  $08048209