Введение в программирование - Учебное пособие (Корочкин А. В.)

8.3 лимитированные типы

Лимитированный ( ограниченный ) тип ( limited type ) - тип, для ко­торого не допустимы операции присваивания.

Тип является лимитированным, если он унаследован от одного из следующих типов:

•   типа, имеющего в описании зарезервированное слово  limited;

•   задачного типа;

•   защищенного типа;

•   составного типа с лиимтированными компонентами.

Для лимитированного типа не существуют предопределенные опе­рации сравнения на равенство ( equality operators ).

Для лимитированного типа определены следующие правила:

•   не разрешается инициализация при обьявлении объекта лимитиро­ванного типа;

•   выражение по умолчанию не допускается в описании компонент, если тип записи - лимтированный;

•   не разрешается   инициализирующий указатель ( генератор ), если тип является лимитированным;

•   формальный параметр настройки вида in   не может быть лими­тируемым типом.

Для лимитируемого типа не используются агрегаты (в сложных ти­пах ) и конкатенация ( в массивах ) . П Рримеры:

type  Focus  is limited  privated;

type  OMP    is  abstract tagged limited private ;

Производный тип от лимитируемого типа является лимитируемым ; составной тип - лимитируемый , если тип хотя бы одной из его компо­нент является лимитированным. Лимитируемый тип может быть поме­чен как тэговый. В этом случае возможно личное расширение, резуль­татом которого является также личный тип.

D Например:

package ASTRA  is

-  тэговый тип

- расширение типа  Т

type        Т    is   tagged;

type        TN   is   new    Т with  private; -

Глава 8. Пакеты

77

Ада 95. Введение в программирование

76

 

 

private   - - личная часть спецификации type TN is new  Т with   - - детализация производного типа TN record

Z :   integer; - - добавление  новой   компоненты end   record ;

end   ASTRA;