34 lines
584 B
ObjectPascal
34 lines
584 B
ObjectPascal
var flag: boolean;
|
|
|
|
type
|
|
r1 = record
|
|
i := 1;
|
|
static function f(a: r1): boolean;
|
|
begin
|
|
Result := a = a;
|
|
end;
|
|
static function f2(a: r1): boolean;
|
|
begin
|
|
Result := a <> a;
|
|
end;
|
|
|
|
static function operator=(a, b: r1): boolean;
|
|
begin
|
|
flag := true;
|
|
Result := a.i = b.i;
|
|
end;
|
|
|
|
static function operator<>(a, b: r1): boolean;
|
|
begin
|
|
flag := true;
|
|
Result := a.i <> b.i;
|
|
end;
|
|
end;
|
|
|
|
begin
|
|
assert(r1.f(new r1));
|
|
assert(flag);
|
|
flag := false;
|
|
assert(not r1.f2(new r1));
|
|
assert(flag);
|
|
end. |