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

8.3.1 Индикаторы переопределения

Индикатор overriding_indicator используется для объявления, что операция предназначена для переопределения (или не переопределения) унаследованной операции.

Синтаксис

overriding_indicator ::= [не] переопределяя

Правила допустимости

Если в abstract_subprogram_declaration, null_procedure_declaration, expression_function_declaration, subprogram_body, subprogram_body_stub, subprogram_renaming_declaration, generic_instantiation подпрограммы или subprogram_declaration, отличной от защищенной подпрограммы, есть overriding_indicator, то:
  • операция должна быть примитивной для некоторого типа;
  • если overriding_indicator равно переопределяя, то операция должна переопределять гомограф в месте объявления или тела;
  • если overriding_indicator равно не переопределяя, то операция не должна переопределять какой-либо гомограф (в любом месте).
Помимо мест, где обычно применяются правила допустимости, эти правила также применяются в частях «private» экземпляра генерируемого блока.
ПРИМЕЧАНИЕ Правила для overriding_indicator задач и защищенных записей и защищенных подпрограмм находятся в 9.5.2 и 9.4 соответственно.

Примеры

Пример использования индикатора переопределения при объявлении очереди безопасности, производной от интерфейса очереди 3.9.4:
type Security_Queue is new Queue with record ...;
переопределяя
procedure Append(Q : in out Security_Queue; Person : in Person_Name);
переопределяя
procedure Remove_First(Q : in out Security_Queue; Person : out Person_Name);
переопределяя
function Cur_Count(Q : in Security_Queue) return Natural;
переопределяя
function Max_Count(Q : in Security_Queue) return Natural;
не переопределяя
procedure Arrest(Q : in out Security_Queue; Person : in Person_Name);
Первые четыре объявления подпрограмм гарантируют, что эти подпрограммы переопределят четыре подпрограммы, унаследованные от интерфейса очереди. Опечатка в одной из этих подпрограмм будет обнаружена на этапе компиляции реализацией. Напротив, объявление Arrest гарантирует, что это новая операция.


Spec-Zone.ru

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