Spec-Zone.ru › Ada 95
Справочник по Ada 95

6.6 Перегрузка операторов

Оператор — это функция, у которой имя является символом_оператора. Операторы, как и другие функции, могут быть перегружены.

Правила разрешения имен

Каждый вызов унарного или бинарного оператора эквивалентен вызову функции с префиксом_функции, являющимся соответствующим символом_оператора, и с (соответственно) одним или двумя позиционными фактическими параметрами, являющимися операндами оператора (в порядке).

Правила легитимности

Спецификация_подпрограммы унарного или бинарного оператора должна иметь один или два параметра соответственно. Инкапсулирование генерической функции, имя которой является символом_оператора, допускается только в том случае, если спецификация генерической функции имеет соответствующее количество параметров.
Выражение_по_умолчанию не допускаются для параметров оператора (независимо от того, объявлен ли оператор с явной спецификацией_подпрограммы или с помощью инстанцирования_генерика).
Явное объявление "/=" не должно иметь тип результата предопределённого типа Boolean.

Статическая семантика

Объявление "=" с типом результата Boolean неявно объявляет объявление "/=", которое даёт дополнительный результат.
ПРИМЕЧАНИЯ
8 Операторы "+" и "-" являются как унарными, так и бинарными, и поэтому могут быть перегружены с функциями с одним и двумя параметрами.

Примеры

Примеры пользовательских операторов:
function "+" (Left, Right : Matrix) return Matrix;
function "+" (Left, Right : Vector) return Vector;

-- предполагая, что A, B и C имеют тип Vector
--следующие две строки эквивалентны:

A := B + C;
A := "+"(B, C);


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API