43 lines
692 B
ObjectPascal
43 lines
692 B
ObjectPascal
type
|
|
TRec2 = record
|
|
x := 2;
|
|
constructor(xx: integer);
|
|
begin
|
|
x := xx;
|
|
end;
|
|
end;
|
|
|
|
TRec = record
|
|
x := 1;
|
|
r: TRec2;
|
|
constructor Create(xx: integer);
|
|
begin
|
|
x := xx;
|
|
r := new TRec2(3);
|
|
end;
|
|
end;
|
|
|
|
TClass = class
|
|
r: TRec;
|
|
end;
|
|
|
|
var gl_r1 := new TRec(10);
|
|
var gl_r2: TRec;
|
|
|
|
begin
|
|
var r1 := new TRec(10);
|
|
var r2: TRec;
|
|
assert(r1.x = 10);
|
|
assert(r1.r.x = 3);
|
|
assert(r2.x = 1);
|
|
assert(r2.r.x = 2);
|
|
assert(gl_r1.x = 10);
|
|
assert(gl_r1.r.x = 3);
|
|
assert(gl_r2.x = 1);
|
|
assert(gl_r2.r.x = 2);
|
|
var o := new TClass;
|
|
assert(o.r.x = 1);
|
|
var a1: array of TRec;
|
|
SetLength(a1, 3);
|
|
assert(a1[0].x = 1);
|
|
end. |