run to "write"
(pdr) p a
A = TFoo(@$00007F8180939060) { F_x: 42, F_y: 43, X: <getter: GetX>, Y: <getter: GetY> }
(pdr) p b
B = TBar(@$00007F8180939080) { }
(pdr) p a.X
a.X = 42
(pdr) p a.Y
a.Y = 43
(pdr) p b.X
b.X = 42
(pdr) p b.Y
b.Y = 43
(pdr) inspect b
[INSPECT] b: TBar (class, 8 bytes)
[INSPECT] parent chain: TBar -> TFoo -> TObject
Not sure if intended? But b is empty / does not show contents of base class?
The important pant though:
b.Y should be 53
program project1;
{$Mode objfpc}
type
{ TFoo }
TFoo = class
private
F_x, F_y: integer;
function GetX: integer;
function GetY: integer; virtual;
public
property X: integer read GetX;
property Y: integer read GetY;
end;
{ TBar }
TBar = class(TFoo)
function GetY: integer; override;
end;
{ TBar }
function TBar.GetY: integer;
begin
Result:= 10 + inherited GetY ;
end;
{ TFoo }
function TFoo.GetX: integer;
begin
Result := F_x;
end;
function TFoo.GetY: integer;
begin
Result := F_y;
end;
var a: TFoo; b: TBar;
begin
a := TFoo.Create;
a.F_x:=42;
a.F_y:=43;
b := TBar.Create;
b.F_x:=42;
b.F_y:=43;
write;
end.
run to "write"
Not sure if intended? But
bis empty / does not show contents of base class?The important pant though:
b.Yshould be53