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

13.6 Изменение представления

Тип type_conversion (см. 4.6) может использоваться для преобразования между двумя различными представлениями одного и того же массива или записи. Для преобразования массива из одного представления в другое необходимо объявить два типа массивов с соответствующими подтипами компонентов и преобразуемыми типами индексов. Если для одного типа указано Pack, а для другого нет, то для упаковки или распаковки массива можно использовать явное преобразование.
Для преобразования записи из одного представления в другое необходимо объявить два типа записей с общим типом предка, не имеющими унаследованных подпрограмм. Затем для типов записей можно указать различные представления, а явное преобразование между типами может быть использовано для изменения представления.

Примеры

Пример изменения представления:
-- Packed_Descriptor и Descriptor — два различных типа
-- с идентичными характеристиками, за исключением их
-- представления
type Descriptor is
record
-- компоненты описателя
end record;
type Packed_Descriptor is new Descriptor;
for Packed_Descriptor use
record
-- пункты компонентов для некоторых или для всех компонентов
end record;
-- Изменение представления теперь можно выполнить с помощью явных преобразований типов:
D : Descriptor;
P : Packed_Descriptor;
P := Packed_Descriptor(D); -- упаковать D
D := Descriptor(P); -- распаковать P


Spec-Zone.ru

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