bug0262.pp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. program test;
  2. type
  3. obj1 = object
  4. st2 : string;
  5. constructor init;
  6. procedure writeit;
  7. procedure writeit(st : string);virtual;
  8. end;
  9. obj2 = object(obj1)
  10. procedure writeit;virtual;
  11. end;
  12. obj3 = object(obj2)
  13. l2 : longint;
  14. procedure writeit(l : longint);virtual;
  15. procedure writeit(st : string);virtual;
  16. end;
  17. obj4 = object(obj3)
  18. procedure writeit;virtual;
  19. procedure writeit(st : string);virtual;
  20. end;
  21. obj5 = object(obj4)
  22. procedure writeit;virtual;
  23. procedure writeit(st : string);
  24. procedure writeit(l : longint);virtual;
  25. end;
  26. constructor obj1.init;
  27. begin
  28. end;
  29. procedure obj1.writeit;
  30. begin
  31. Writeln('Obj1 writeit');
  32. end;
  33. procedure obj1.writeit(st : string);
  34. begin
  35. Writeln('Obj1 writeit(string) ',st);
  36. end;
  37. procedure obj2.writeit;
  38. begin
  39. Writeln('Obj2 writeit');
  40. end;
  41. procedure obj3.writeit(st : string);
  42. begin
  43. Writeln('Obj3 writeit(string) ',st);
  44. end;
  45. procedure obj3.writeit(l : longint);
  46. begin
  47. Writeln('Obj2 writeit(longint) ',l);
  48. end;
  49. procedure obj4.writeit;
  50. begin
  51. Writeln('Obj4 writeit');
  52. end;
  53. procedure obj4.writeit(st : string);
  54. begin
  55. Writeln('Obj4 writeit(string) ',st);
  56. end;
  57. procedure obj5.writeit;
  58. begin
  59. Writeln('Obj5 writeit');
  60. end;
  61. procedure obj5.writeit(st : string);
  62. begin
  63. Writeln('Obj5 writeit(string) ',st);
  64. end;
  65. procedure obj5.writeit(l : longint);
  66. begin
  67. Writeln('Obj5 writeit(longint) ',l);
  68. end;
  69. var
  70. o1 : obj1;
  71. o2 : obj2;
  72. o3 : obj3;
  73. o4 : obj4;
  74. o5 : obj5;
  75. begin
  76. o1.init;
  77. o1.writeit;
  78. o1.writeit('o1');
  79. o2.init;
  80. o2.writeit;
  81. o2.writeit('o2');
  82. o3.init;
  83. o3.writeit;
  84. o3.writeit('o3');
  85. o3.writeit(3);
  86. o4.init;
  87. o4.writeit;
  88. o4.writeit('o4');
  89. o4.writeit(4);
  90. o5.init;
  91. o5.writeit;
  92. o5.writeit('o5');
  93. o5.writeit(5);
  94. end.