Режимы передачи параметров
Стандарт Ada83 предусматривал три режима передачи параметров для подпрограмм:
"in"
"in out"
"out"
Стандарт Ada95 добавил еще один режим передачи параметров:
access
Все эти режимы не имеют непосредственных аналогов в других языках программирования.
Необходимо также отметить следующее:
по-умолчанию, для передачи параметров подпрограммы, всегда устанавливается режим - "in" !!!
Для "in" / "out" скалярных значений используется механизм передачи параметров по копированию-"in" (copy-in), по копированию-"out" (copy-out).
Стандарт специфицирует, что любые другие типы могут быть переданы по copy-in/copy-out, или по ссылке.
Ada95 указывает, что лимитированные приватные типы (limited private types), которые рассматриваются позднее, передаются по ссылке, для предотвращения проблем нарушения приватности.