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

6.2 Режимы формальных параметров

Параметр_спецификация объявляет формальный параметр с режимом in, in out или out.

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

Параметр передается либо по значению, либо по ссылке. Когда параметр передается по значению, формальный параметр обозначает отдельный объект от фактического параметра, и любое передача информации между ними происходит только до и после выполнения подпрограммы. Когда параметр передается по ссылке, формальный параметр обозначает (вид) объекта, обозначаемого фактическим параметром; чтение и обновление формального параметра напрямую ссылаются на объект фактического параметра.
Тип является типом копирования, если он является элементарным типом или если он является потомком частного типа, полным типом которого является тип копирования. Параметр типа копирования передается по значению.
Тип является типом ссылки, если он является потомком одного из следующих:
  • меченый тип;
  • тип задачи или защищённый тип;
  • нечастный тип с ключевым словом limited в его объявлении;
  • составной тип с подкомпонентом типа ссылки;
  • частный тип, полным типом которого является тип ссылки.
Параметр типа ссылки передается по ссылке. Каждое значение типа ссылки имеет связанный объект. Для выражения в скобках, квалифицированного_выражения или преобразования_типа этот объект является объектом, связанным с операндом.
Для параметров других типов не определено, передаются ли они по значению или по ссылке.

Ограниченные (времени выполнения) ошибки

Если одно имя обозначает часть формального параметра, и второе имя обозначает часть другого формального параметра или объект, который не является частью формального параметра, то эти два имени считаются разными путями доступа. Если объект имеет тип, для которого механизм передачи параметров не определен, то ошибка присваивания объекту через один путь доступа и последующее чтение значения объекта через другой путь доступа является ограниченной ошибкой, за исключением случаев, когда первый путь доступа обозначает часть формального параметра, который больше не существует в момент второго доступа (из-за выхода из соответствующего вызываемого блока). Возможными последствиями являются поднятие Program_Error, чтение только что присвоенного значения или чтение какого-то старого значения объекта.
ПРИМЕЧАНИЯ
5 Формальный параметр режима in является постоянным представлением (см. 3.3); его нельзя обновить в теле подпрограммы.


Spec-Zone.ru

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