Кроме того, присваивание значений всему
Кроме того, присваивание значений всему объекту сразу является единственным способом изменения значений тех компонентов, у которых определение подтипа зависит от значения дискриминанта. Для пояснения последнего, рассмотрим пример:
type Property is array (Positive range <>) of Float; type Man (Number: Positive := 2; Size: Positive := 10) is record
Name : String (1..Size); Prop_Array : Property (1..Number); end record;
The_Man : Man;
The_Man.Name := "Ivanov I I"; The_Man.Prop_Array := (25.0, 50.0);
. . .
The_Man := ( Number => 3, Size => 8, Name => "Pyle I C", Prop_Array => (25.0, 50.0, 160.5) );
|
Здесь, первоначально объект The_Man описан как запись, значения дискриминантов которой устанавливаются по умолчанию. Затем, значения дискриминантов изменяются, но это изменение выполняется согласно требований Ады: осуществляется присваивание значения всей переменной.
Содержание Назад Вперед