Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Совместимость типов по присваиваниюСодержание книги
Поиск на нашем сайте
Эквивалентность типов Говорят, что типы T1 и T2 эквивалентны, если выполняется одно из следующих условий: 1. T1 и T2 совпадают 2. T1 и T2 - динамические массивы с совпадающими типами элементов 3. T1 и T2 - указатели с совпадающими базовыми типами 4. T1 и T2 - множества с совпадающими базовыми типами 5. T1 и T2 - процедурные типы с совпадающим списком формальных параметров (и типом возвращаемого значения - для функций) Если типы эквивалентны только если их имена совпадают, то говорят, что имеет место именная эквивалентность типов. Если типы эквивалентны если они совпадают по структуре, то говорят, что имеет место структурная эквивалентность типов. Таким образом, в PascalABC.NET имеет место именная эквивалентность для всех типов, кроме динамических массивов, множеств, типизированных указателей и процедурных типов, для которых имеет место структурная эквивалентность типов. Только если типы T1 и T2 эквивалентны, фактический параметр типа T1 может быть подставлен вместо формального параметра-переменной типа T2. Совместимость типов Говорят, что типы T1 и T2 совместимы, если выполняется одно из следующих условий: 1. T1 и T2 эквивалентны 2. T1 и T2 принадлежат к целым типам 3. T1 и T2 принадлежат к вещественным типам 4. Один из типов - поддиапазон другого или оба - поддиапазоны некоторого типа 5. T1 и T2 - множества с совместимыми базовыми типами Говорят, что значение типа T2 можно присвоить переменной типа T1 или тип T2 совместим по присваиванию с типом T1, если выполняется одно из следующих условий: 1. T1 и T2 совместимы 2. T1 - вещественного типа, T2 - целого 3. T1 - строкового типа, T2 - символьного 4. T1 - pointer, T2 - типизированный указатель 5. T1 - указатель или процедурная переменная, T2=nil 6. T1 - процедурная переменная, T2 - имя процедуры или функции с соответствующим списком параметров 7. T1, T2 - классовые типы, один из них - наследник другого. Поскольку в PascalABC.NET все типы кроме указателей являются потомками типа Object, то значение любого типа (кроме указателей) можно присвоить переменной типа Object 8. T1 - тип интерфейса, T2 - тип класса, реализующего этот интерфейс Если тип T2 совместим по присваиванию с типом T1, то говорят также, что тип T2 неявно приводится к типу T1. // НеРеализованоЕсли при приведении типа происходит выход за диапазон значений типа-результата, то при отключенной директиве компилятора #rangecheck off (по умолчанию) значения приводимого типа усекаются до значений типа-результата, при установленной директиве компилятора #rangecheck on генерируется исключение.
|
||||
Последнее изменение этой страницы: 2024-06-27; просмотров: 2; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.212.203 (0.005 с.) |