Ада-95. Компилятор GNAT



Неограниченные записи (unconstrained records) - часть 2


Кроме того, присваивание значений всему объекту сразу является единственным способом изменения значений тех компонентов, у которых определение подтипа зависит от значения дискриминанта. Для пояснения последнего, рассмотрим пример:

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 описан как запись, значения дискриминантов которой устанавливаются по умолчанию. Затем, значения дискриминантов изменяются, но это изменение выполняется согласно требований Ады: осуществляется присваивание значения всей переменной.




Содержание  Назад  Вперед