Справочное руководство по языку Ада-83


Профиль типа параметров и результата совмещение подпрограмм


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

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

Один и тот же идентификатор подпрограммы или знак операции может быть использован для нескольких спецификаций подпрограмм. В этом случае идентификатор или знак операции называется совмещенным; подпрограммы, которые имеют этот идентификатор или знак операции, тоже называются совмещенными и, следовательно, могут совмещаться друг с другом. Как поясняется в разд. 8.3, если две подпрограммы совмещаются друг с другом, то одна из них может скрыть другую, только если обе подпрограммы имеют одинаковый профиль типа параметров и результата [6]

(см. 8.3, где описаны другие требования, необходимые для скрытия).

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

Примеры совмещенных подпрограмм:

procedure PUT(X : INTEGER»; procedure PUT(X : STRING); procedure SET(TINT : COLOR); procedure SET(SIGNAL : LIGHT);

Примеры вызовов:

PUT(28); PUT("no possibte ambiguity here"); SET(TINT => RED»: SET(SIGNAL => RED); SET(COLOR'(RED));

-- SET (RED) может быть неоднозначным, так как -- может обозначать значение типа COLOR и типа

Примечание.

Понятие профиля типа параметров и результата не учитывает имен параметров, их видов и подтипов, а также присутствия или отсутствия выражений по умолчанию.




Начало  Назад  Вперед