Руководство по языку B.Pascal 7

       

Совместимость по присваиванию


Совместимость по присваиванию необходима, если имеет место присваивание значения, например, в операторе присваивания или при передаче значений параметров.

Значение типа T1 является совместимым по присваиванию с ти- пом T2 (то есть допустим оператор T1:=T2), если выполняется одно из следующих условий:

* T1 и T2 имеют тождественные типы, и ни один из них не яв- ляется файловым типом или структурным типом, содержащим компонент с файловым типом на одном из своих уровней.

* T1 и T2 являются совместимыми порядковыми типами, и значе- ния типа T2 попадают в диапазон возможных значений T1.

* T1 и T2 являются вещественными типами, и значения типа T2 попадают в диапазон возможных значений T1.

* T1 является вещественным типом, а T2 является целочислен- ным типом.

* T1 и T2 являются строковыми типами.

* T1 является строковым типом, а T2 является символьным ти- пом (Char).

* T1 является строковым типом, а T2 является упакованным строковым типом.

* T1 и T2 являются совместимыми упакованными строковыми ти- пами.

* T1 и T2 являются совместимыми множественными типами, и все члены значения типа T2 попадают в диапазон возможных зна- чений T1.

* T1 и T2 являются совместимыми типами указателей.

* T1 - это тип PChar, а T2 - это строковая константа (это действует только при разрешении директивой {$X+} расширен- ного синтаксиса).

* T1 является типом PChar, а T2 - символьным массивом с ну- левой базой вида array[0..X] of Char (это действует только при разрешении директивой {$X+} расширенного синтаксиса).

* T1 и T2 являются совместимыми процедурными типами.

* T1 представляет собой процедурный тип, а T2 - процедура или функция с идентичным типом результата, идентичным чис- лом параметров и соответствием между типами параметров.

* Объектный тип T2 совместим по присваиванию с объектным ти- пом T1, если T2 является доменом T1.

* Тип указателя Р2, указывающий на объект типа Т3, совместим по присваиванию с типом указателя P1, указывающим на объ- ект T1, если T2 является доменом T1.

На этапе компиляции и выполнения выдается сообщение об ошиб- ке, если совместимость по присваиванию необходима, а ни одно из условий предыдущего списка не выполнено.



Содержание раздела