Hello,
Can static class methods be virtual?
According to the FPC documentation, static class methods cannot be virtual, as stated here:
https://www.freepascal.org/docs-html/ref/refsu30.html
But in practice, FPC compiles and executes virtual and overridden static class methods just fine.
The following code prints "AB" with FPC 3.0.4 and 2.6.4.
=======================================
type
TTestA = class
protected
class function GetName: String; virtual; static;
public
class property Name: String read GetName;
end;
type
TTestB = class(TTestA)
protected
class function GetName: String; override; static;
end;
class function TTestA.GetName: String;
begin
Result := 'A';
end;
class function TTestB.GetName: String;
begin
Result := 'B';
end;
begin
WriteLn(TTestA.Name, TTestB.Name);
end.
=======================================Thanks,
Denis
