Ада-95. Компилятор GNAT



Настраиваемые подпрограммы - часть 2


procedure Swap is new Exchange(Element => Integer);

Теперь мы имеем процедуру Swap которая меняет местами переменные целого типа Integer.

Здесь, Integer является фактическим параметром настройки, а Element - формальным параметром настройки.

Процедура Swap может быть вызвана (и она будет вести себя) как будто она была описана следующим образом:

procedure Swap (A, B : in out Integer) is

Temp : Integer;

begin

. . .

end Swap;

Таких процедур Swap можно создать столько, сколько необходимо.

procedure Swap is new Exchange(Character); procedure Swap is new Exchange(Element => Account); -- ассоциация по имени

В этом случае будет нормально использоваться совмещение имен процедур.

Компилятор будет определять к какой конкретно процедуре производится вызов используя информацию о типе параметра.




Содержание  Назад  Вперед