[fpc-devel] Visibility of overloaded ancestor method from a child class
Maxim Ganetsky
ganmax at narod.ru
Fri Feb 7 14:23:11 CET 2025
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:ganmax at narod.ru
More information about the fpc-devel
mailing list