15.2 Объявление оператора

Вверх  Предыдущий  Следующий

Определение действия оператора во многом напоминает определение функции:


Объявление оператора.

1501


Список параметров для оператора сравнения или арифметического оператора всегда должнен содержать два параметра, за исключением унарного минуса, где необходим только один параметр. Тип результата оператора сравнения должно быть логическим (Boolean).

Примечание:

При компиляции в режиме Delphi или Objfpc, результат идентификатора может быть игнорирован. К результату можно обращаться через стандартный символ Result (Результат).

Если результат отбрасывается и компилятор не находится ни в одном из этих режимов, произойдет ошибка синтаксиса.

Блок оператора содержит необходимые операторы для определения операции. Он может содержать сколь угодно большие куски кода; они выполняется всякий раз, когда в выражении встречается эта операция. Результат блока операторов должен быть определён всегда; ошибки не проверяются компилятором, код должен позаботиться о обработке всех возможных случаях ошибок времени выполнения, если они возможны.

Далее будут рассмотрены три типа определений оператора. В качестве примера, для определения перегруженных операторов в этой главе будет использоваться следующий тип:

type

complex = record

  re : real;

  im : real;

end;

Этот тип будет использоваться во всех примерах.

Исходники библиотеки времени выполнения содержат два модуля, которые в значительной степени используют перегрузку операторов:

ucomplex
Этот модуль содержит всё для вычисления комплексных чисел.

matrix
Этот модуль содержит всё для вычисления матриц.