...Только не спрашивай, зачем ЭТО нужно... Вот нужно мне это и все... Я не хочу запоминать десять имен типа print_integer/print_double/print_string/print_char ..., а хочу использовать перегрузку и работать с print, а что именно должно быть вызвано - это пусть компилятор разбирается...
b = object
float_add: double;
procedure print(i: integer);
procedure print(f: double); // <--- Ошибочка, Override надо !!!
end;
procedure b.X(f: double);
begin
showmessage(floattostr(f + float_add));
end;
procedure b.X(i: integer);
begin
showmessage(inttostr(i));
end;
...
TA=class
a,b,c:integer;
procedure first;
procedure second;virtual;
end;
TB=class(TA)
procedure second;override;
end;
....
procedure TA.second;
begin
c:=a+b;
end;
procedure TA.first;
begin
a:=5;
b:=8;
second;
end;
procedure TB.second;
begin
c:=a-b;
end;
procedure TForm1.Button1Click(Sender: TObject);
var O2: TB;
begin
O2:=TB.Create;
O2.first;
ShowMessage(IntToStr(O2.c));
end;
TA=class
a,b,c:integer;
procedure first;
procedure second;
end;
TB=class(TA)
procedure second;
end;
....
procedure TA.second;
begin
c:=a+b;
end;
procedure TA.first;
begin
a:=5;
b:=8;
second;
end;
procedure TB.second;
begin
c:=a-b;
end;
procedure TForm1.Button1Click(Sender: TObject);
var O2: TB;
begin
O2:=TB.Create;
O2.first;
ShowMessage(IntToStr(O2.c));
end;
uses sysutils;(НЕ override !!! Виртуальные функции... ) Если можно - без использования компилятора, что ТЕОРЕТИЧЕСКИ должно быть выведено? ...
type
TA = class
a,b,c:integer;
procedure first;
procedure second; virtual;
end;
TB = class(TA)
procedure second; virtual;
end;
procedure TA.second;
begin
c := a+b;
end;
procedure TA.first;
begin
a := 5;
b := 8;
second;
end;
procedure TB.second;
begin
c:=a-b;
end;
var O2: TB;
begin
O2:=TB.Create;
O2.first;
writeln(IntToStr(O2.c));
end.
type
TA = class
a,b,c:integer;
procedure first; virtual; // <-- !!!
procedure second; virtual;
end;
uses sysutils;
type
TA = object
a,b,c:integer;
constructor create;
procedure first;
procedure second; virtual;
end;
TB = object(ta)
constructor create;
procedure second; virtual;
end;
constructor ta.create;
begin end;
procedure TA.second;
begin
c := a+b;
end;
procedure TA.first;
begin
a := 5;
b := 8;
second;
end;
constructor tb.create;
begin inherited create; end;
procedure TB.second;
begin
c:=a-b;
end;
var O2: TB;
begin
o2.create;
O2.first;
writeln(IntToStr(O2.c));
end.
constructor tb.create;
begin end;
a:integer;
...
a:=SpinEdit1.Value;
StaticText1.Caption:=FloatToStr(err, ffFixed, 18, 18);