36. Совместимость типов объектов
Наследование до некоторой степени изменяет правила совместимости типов в Borland Pascal. Потомок наследует совместимость типов всех своих предков.
Эта расширенная совместимость типов принимает три формы:
1) между реализациями объектов;
2) между указателями на реализации объектов;
3) между формальными и фактическими параметрами. Совместимость типов расширяется только от потомка к родителю.
Например, TSalaried является потомком TEmployee, а TCommissioned - потомком TSalaried. Рассмотрим следующие описания:
var
AnEmрloyee: TEmployee;
ASalaried: TSalaried;
PCommissioned: TCommissioned;
TEmployeePtr: ^TEmployee;
TSalariedPtr: ^TSalaried;
TCommissionedPtr: ^TCommissioned;
При данных описаниях справедливы следующие операторы присваивания:
AnEmрloyee:=ASalaried;
ASalaried:= ACommissioned;
TCommissionedPtr:= ACommissioned;
В общем случае правило совместимости типов формулируется так: источник должен быть в состоянии полностью заполнить приемник. Порожденные типы содержат все, что содержат их порождающие типы благодаря свойству наследования. Поэтому порожденный тип имеет размер не меньший размера родителя. Присвоение порождающего объекта порожденному могло бы оставить некоторые поля порожденного объекта неопределенными, что опасно и поэтому недопустимо.
В операторах присваивания из источника в приемник будут копироваться только поля, являющиеся общими для обоих типов. В операторе присваивания:
AnEmрloyee:= ACommissioned;
Только поля Name, Title и Rate из ACommissionedбудут скопированы в AnEmployee, так как только эти поля являются общими для TCommissioned и TEmployee. Совместимость типов работает также между указателями на типы объектов и подчиняется тем же общим правилам, что и для реализаций объектов. Указатель на потомка может быть присвоен указателю на родителя. Если дать предыдущие определения, то следующие присваивания указателей будут допустимыми:
TSalariedPtr:= TCommissionedPtr;
TEmployeePtr:= TSalariedPtr;
TEmployeePtr:= PCommissionedPtr;
Формальный параметр (либо значение, либо параметр-переменная) данного объектного типа может принимать в качестве фактического параметра объект своего же типа или объекты всех дочерних типов. Если определить заголовок процедуры следующим образом:
procedure CalcFedTax(Victim: TSalaried);
то допустимыми типами фактических параметров могут быть TSalaried или TCommissioned, но не тип TEmployee. Victim также может быть параметром-переменной. При этом выполняются те же правила совместимости.
Параметр-значение является указателем на действительный, посылаемый в качестве параметра объект, а параметр-переменная является копией фактического параметра. Эта копия включает только те поля, которые входят в тип формального параметра-значения. Это означает, что фактический параметр преобразуется к типу формального параметра.
Автор: Цветкова А.В.
<< Назад: Расширяющиеся объекты
>> Вперед: Об Ассемблере
Рекомендуем интересные статьи раздела Конспекты лекций, шпаргалки:
▪ Общая биология. Конспект лекций
▪ Общие основы педагогики. Шпаргалка
▪ Исследование систем управления. Конспект лекций
Смотрите другие статьи раздела Конспекты лекций, шпаргалки.
Читайте и пишите полезные комментарии к этой статье.
<< Назад
Последние новости науки и техники, новинки электроники:
Большой адронный коллайдер прекращает работу
16.01.2026
Физика элементарных частиц - одна из самых передовых областей науки, где каждый эксперимент может изменить наше понимание мироздания. Центральным инструментом этих исследований является Большой адронный коллайдер (LHC), уникальный ускоритель частиц, позволяющий изучать самые фундаментальные законы природы. Недавно стало известно, что LHC временно прекращает свою работу для масштабной модернизации, которая подготовит его к новому этапу экспериментов с гораздо большей производительностью.
Коллайдер, расположенный в подземном тоннеле вдоль швейцарско-французской границы, создает столкновения частиц на невероятно высоких энергиях. Именно здесь в 2012 году ученые открыли бозон Хиггса - ключевую частицу, объясняющую, почему другие элементарные частицы имеют массу. Это открытие стало одним из самых значимых событий современной физики и подтвердило предсказания Стандартной модели.
Причиной временной остановки LHC стало развертывание проекта High-Luminosity LHC (HL-LHC). Модернизация позв ...>>
Робот-бармен AI Barmen
16.01.2026
Американские инженеры создали AI Barmen - робота-бармена, способного не только готовить коктейли, но и запоминать предпочтения гостей.
AI Barmen представляет собой автономную систему, которую можно устанавливать практически в любых местах - от баров и ресторанов до гостиниц, аэропортов и корпоративных мероприятий. Робот сочетает механический манипулятор с интеллектуальной программой, которая подбирает напитки на основе истории заказов конкретного пользователя. Гости могут оставаться анонимными или разрешить системе запоминать их вкусы, что позволяет получать одинаково качественный персонализированный коктейль в любой точке, где установлен AI Barmen.
Робот готовит широкий спектр коктейлей с высокой точностью, контролирует запасы ингредиентов и автоматически ведет учет, что снижает затраты и минимизирует ошибки. Для работы устройства достаточно стандартной розетки, подключение к воде не требуется, что делает его мобильным и удобным для эксплуатации в самых разных условиях.
Систе ...>>
Стерильного нейтрино не существует
15.01.2026
В физике элементарных частиц поиск новых, пока не обнаруженных объектов играет ключевую роль в понимании устройства Вселенной. Иногда такие поиски приводят к громким открытиям, а иногда - к не менее важным отрицательным результатам, которые позволяют отбросить неверные направления. Именно к таким случаям относится недавний вывод ученых о судьбе стерильного нейтрино - одной из самых интригующих гипотетических частиц последних десятилетий.
Исследователи из американской лаборатории Fermilab официально сообщили, что им не удалось найти доказательства существования стерильного нейтрино. К такому выводу пришла команда эксперимента MicroBooNE после многолетнего анализа столкновений нейтрино, которые ранее рассматривались как возможный намек на существование четвертого типа этих частиц. Предполагалось, что стерильное нейтрино взаимодействует с материей исключительно через гравитацию, что делало его крайне трудным объектом для обнаружения.
В рамках современной физики нейтрино известны в т ...>>
Случайная новость из Архива Биологическое время можно определить по анализу крови
22.09.2018
Известно, что многие болезни по-разному ведут себя в разное время суток - например, в мужском организме последствия сердечного приступа будут серьезнее, если приступ случился во время сна; также и лекарства, и медицинские процедуры действуют по-разному в зависимости от того, на какой "внутренний час" они пришлись (в частности, год назад мы писали о том, что некоторые операции на сердце лучше делать в середине дня). Так что было бы очень хорошо, если бы у нас появился способ достаточно точно, быстро и просто определять наше биологическое время.
Известно, что биологическим часам подчиняются множество генов. Активность же гена можно определить по уровню матричных РНК, которая с него копируется - как мы знаем, молекулы РНК служат посредником, переносчиком генетической информации от ДНК к молекулярным машинам, синтезирующим белки. Исследователи из Северо-Западного университета (Чикаго) из тысяч и тысяч человеческих генов отобрали сорок, которые удобнее всего использовать для оценки биологических ритмов - то есть они оставляют в крови достаточно заметные следы в виде РНК, и их активность сильно подчинена суточным ритмам.
Метод протестировали на одиннадцати добровольцах, и оказалось, что он позволяет угадать внутреннее время с точностью до двух часов. Конечно, и раньше были попытки оценивать определять время суточного ритма по крови, но в других методах для этого нужно было брать много образцов.
В новом методе достаточно всего лишь двух проб крови в течение суток. Авторы работы утверждают, что их анализ позволяет учитывать индивидуальные особенности в активности генов, и потому его можно использовать с любым человеком.
|
Другие интересные новости:
▪ Экология и Интернет
▪ Голодание повышает качество жизни
▪ Технология копирования причесок от Disney
▪ МФУ Stylus Photo RX600
▪ Первый многостандартный интерфейс для драйверов дисков 90 нм
Лента новостей науки и техники, новинок электроники
Интересные материалы Бесплатной технической библиотеки:
▪ раздел сайта ВЧ усилители мощности. Подборка статей
▪ статья Розанов Василий Васильевич. Знаменитые афоризмы
▪ статья Что такое мозг? Подробный ответ
▪ статья Облицовщик деталей мебели, занятый склеиванием деталей на пневматических ваймах с кондуктивным обогревом. Типовая инструкция по охране труда
▪ статья Отопительная система на базе тепловых насосов. Энциклопедия радиоэлектроники и электротехники
▪ статья Вместо тумблера - реле, вместо КПЕ - резистор. Энциклопедия радиоэлектроники и электротехники
Оставьте свой комментарий к этой статье:
Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua
2000-2026