4.3 эквивалентность типовВ Аде используется именная эквивалентность типов. То есть объекты являются эквивалентными тогда и только тогда, когда они описаны с помощью одного и того же идентификатора типа. П Например: А, В : Vec16; С : Vec16; -- объекты А, В и С имеют одинаковый тип X, Y : array (1 .. 20) of Float; - - все три объекта имеют разный Z : array (1 .. 20) of Float; - - (анонимный) тип Преобразование типов осуществляется как преобразование выражений по следующему правилу: Имя_типа (Выражение); Преобразования разрешены только для числовых производных и индексируемых типов. При этом должны соблюдаться определённые требования, такие как наличие общего родительского типа для производных типов и одинаковая размерность и тип компонент для индексируемых типов. П Например: X: integer; Z : float; X : ч integer ( Z + 2.33 ); Z : = float ( X ) + Z / 4.235E-03; Кроме того, возможно и обратное преобразование типов. В Аде не допускаются неявные преобразования типов, так как они делают программы трудными для понимания. Переходы от подтипов к базовому типу и наоборот не являются преобразованием типа, так как подтип не вводит новый тип. |
| Оглавление| |