Hello.
The following program does not compile, because overloaded AddItem(s:
string) method in ancestor is not visible from child class. Is it normal?
program Test;
{$MODE OBJFPC}
type
TBase = class
public
procedure AddItem(s: string; i: integer); virtual;
procedure AddItem(s: string);
end;
TDesc = class(TBase)
public
procedure AddItem(s: string; i: integer); override;
end;
procedure TDesc.AddItem(s: string; i: integer);
begin
writeln('TDesc(s,a) ', s, ' ', i);
end;
procedure TBase.AddItem(s: string; i: integer);
begin
writeln('TBase(s,a) ', s, ' ', i);
end;
procedure TBase.AddItem(s: string);
begin
AddItem(s, 123);
end;
var
lBase: TBase;
lDesc: TDesc;
begin
lBase := TBase.Create;
lDesc := TDesc.Create;
lBase.AddItem('test'); // OK
lDesc.AddItem('test'); // Error: Wrong number of parameters specified
for call to "AddItem"
readln;
end.
--
Best regards,
Maxim Ganetsky mailto:gan...@narod.ru
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel