4 .6 примерыПусть для работы в программе необходимы четыре типа, задающих одномерные массивы (вектора), элементы которого имеют тип Elem. Возможны различные варианты определения таких типов: 1. Через определение новых типов. Type VectorlO is array (1 .. 10) of Elem; Type VectortOO is array (1 .. 100) of Elem; Type VectorN is array (1 .. N) of Elem; Type VectorH is array (1 .. H ) of Elem; При совместном использовании обьектов этих типов необходимо выполнить явное преобразование типов, так как они не являются эквивалентными. 2. Через использование анонимных типов.
Здесь неявно при объявлении обьектов созданы типы (анонимные). Вследствие этого совместное использование объявленных обьектов невозможно, так как для анонимных типов нельзя выполнить явное преобразование типов. 3. Через производные типы. В этом случае задается родительский тип Type Vector is array (1.. 1000) of Elem; Глава 4. Типы определяемые пользователем Vector( 1 .. 10); Vector(1 ..100); Vector( 1 .. N ); Vector( 1 .. H ); на основании которого путем введения ограничений индекса создаются производные типы: Type VectorlO is new Type Vector 100 is new Type VectorN is new Type VectorH is new Для обьектов этих типов сохраняются все свойства родительского типа ( множество значений с учетом введенных ограничений и множество операций). При совместном использовании обьектов этих типов необходимо выполнять явные допустимые преобразования, 4. Через использование подтипов. Определяется базовый тип (создается или берется уже готовый): Type Vectors is array (integer range<>) of Elem; Создаются подтипы на основе базового типа Subype VectoMO Subype VectoMOO Subype Vec_N Subype VecJH is Vectors( 1 .. 10); is Vectors( 1 .. 100); is Vectors( 1 .. N ); is Vectors( 1 .. H ); При совместном использовании обьектов этих подтипов преобразования типов не требуется, компилятор лишь осуществляет контроль за соблюдением введенных в подтип ограничений, 42 Ада 95. Введение в программирование Глава 5. Операторы 43
|
| Оглавление| |