[fpc-devel] Class property and virtual getter
Sven Barth
pascaldragon at googlemail.com
Mon May 26 20:25:38 CEST 2014
On 26.05.2014 14:45, Michael Schnell wrote:
> I suppose this would work independently of virtual, as no "Self" is
> involved at all.
>
> It might be some work to do a test. It could e.g. use two siblings and
> detect if different classtype values are found in the two siblings.
Here... happy now? ;)
=== code begin ===
program tclassvirtual;
{$mode objfpc}
type
TBase = class
class procedure Test; virtual;
end;
TSub1 = class(TBase)
class procedure Test; override;
end;
TSub2 = class(TBase)
class procedure Test; override;
end;
TBaseClass = class of TBase;
class procedure TBase.Test;
begin
Writeln(Self.ClassName);
end;
class procedure TSub1.Test;
begin
Writeln('TSub1');
inherited;
end;
class procedure TSub2.Test;
begin
Writeln('TSub2');
inherited;
end;
var
b: TBaseClass;
begin
TBase.Test;
TSub1.Test;
TSub2.Test;
b := TBase;
b.Test;
b := TSub1;
b.Test;
b := TSub2;
b.Test;
end.
=== code end ===
=== output begin ===
TBase
TSub1
TSub1
TSub2
TSub2
TBase
TSub1
TSub1
TSub2
TSub2
=== output end ===
Regards,
Sven
More information about the fpc-devel
mailing list