15.6 Оператор In |
Вверх Предыдущий Следующий |
Начиная с версии 2.6 Free Pascal, оператор in тоже может быть перегружен. Первый аргумент in оператора должен быть операндом слева от ключевого слова in. Следующий пример показывает как оператор in перегружен для записей: {$mode objfpc}{$H+}
type TMyRec = record A: Integer end;
operator in (const A: Integer; const B: TMyRec): boolean; begin Result := A = B.A; end;
var R: TMyRec; begin R.A := 10; Writeln(1 in R); // false Writeln(10 in R); // true end. Оператор in может быть перегружен и для других (не порядковых) типов, как показано в следующем примере: {$mode objfpc}{$H+}
type TMyRec = record A: Integer end;
operator in (const A: TMyRec; const B: TMyRec): boolean; begin Result := A.A = B.A; end;
var S,R: TMyRec; begin R.A := 10; S.A:=1; Writeln(S in R); // false Writeln(R in R); // true end. |