Выяснение типа объекта в период выполнения
Выяснение типа объекта в период выполнения
Разработчики ОО-ПО вскоре вырабатывают здоровую неприязнь к любому стилю вычислений, основанному на явном выборе между различными типами объекта. Полиморфизм и динамическое связывание намного предпочтительнее. Однако в некоторых случаях объект приходит извне, так что автор ПО не имеет возможности с определенностью предсказать его тип. В частности, это случается, если объект извлекается из внешних хранилищ, получен по сети или передан некоторой другой системой.
Тогда ПО нуждается в механизме, обеспечивающем безопасный способ доступа к объекту без нарушения ограничений статической типизации. Такой механизм должен проектироваться с большой аккуратностью, так чтобы не утратить пользы от полиморфизма и динамического связывания.
Операция попытка присваивания (assignment attempt) удовлетворяет этим требованиям. Это условная операция: она пытается присоединить объект к сущности; если при выполнении операции тип объекта соответствует типу сущности, то она действует как нормальное присваивание; в противном случае сущность получает специальное значение void. Итак, можно управлять объектами, тип которых не известен наверняка, не нарушая безопасности системы типов.
Необходимо иметь возможность определять во время выполнения, соответствует ли тип объекта статически заданному типу.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Понятия объекта и экземпляра объекта
Понятия объекта и экземпляра объекта В начале этой главы мы познакомились с типами данных, определяющими саму природу данных и набор действий, которые можно выполнять с этими данными. Так, строковый тип определяет, что данные этого типа представляют собой строки —
Период ученичества
Период ученичества Итак, как же молодые выпускники должны вливаться в ряды профессиональных программистов? Какой путь они должны пройти? С какими препятствиями столкнуться? Каких целей они должны достичь? Давайте рассмотрим профессиональные уровни программистов по
Понятия объекта и экземпляра объекта
Понятия объекта и экземпляра объекта В начале этой главы мы познакомились с типами данных, определяющими саму природу данных и набор действий, которые можно выполнять с этими данными. Так, строковый тип определяет, что данные этого типа представляют собой строки —
Отличия процедур типа Function от процедур типа Sub
Отличия процедур типа Function от процедур типа Sub Между процедурами типа Function и типа Sub есть одно существенное отличие: в процедуре типа Function обязательно где-то должен присутствовать по крайней мере один оператор, задающий значение этой функции. При этом используется имя
Выяснение места остановки
Выяснение места остановки Когда программа находится в режиме паузы, редактор Visual Basic подсвечивает оператор, который предполагается выполнить следующим. Для гарантии на полях около строки с этим оператором в окне редактирования программного кода появляется стрелка. То,
Выяснение и установка свойств объектов
Выяснение и установка свойств объектов Вероятно, свойства - это самые простые для понимания характеристики объекта. Каждое свойство хранит информацию о некотором аспекте внешнего вида, поведения, содержимого объекта или, если хотите, о его генеалогии.Например, объект
8.6. Определение типа объекта во время выполнения
8.6. Определение типа объекта во время выполнения ПроблемаВо время выполнения требуется динамически узнавать тип определенного класса.РешениеДля запроса, на объект какого типа указывает адрес объекта, используйте идентификацию типов во время выполнения (обычно
Разрыв объекта
Разрыв объекта Команда BREAK позволяет удалять части объекта или разбивать объект на два. Для ее запуска следует нажать кнопку Break (Разрыв) на вкладке Home (Основная) в группе Modify (Редактирование) ленты или на панели инструментов Modify (Редактирование). Можно также выполнить
Мониторинг утверждений в период выполнения
Мониторинг утверждений в период выполнения Пришло время, дать полный ответ на вопрос: "какой эффект производят утверждения в период выполнения?". Как отмечалось, ответ определяется разработчиком, имеющим возможность управлять параметрами компиляции. Выбор нужных
Нужен ли мониторинг в период выполнения?
Нужен ли мониторинг в период выполнения? Действительно, нужно ли проверять утверждения в период выполнения? После того, как мы были в состоянии, используя утверждения, дать теоретическое определение корректности класса: каждая процедура создания должна гарантировать
Выяснение риска
Выяснение риска Из разговора с Марией я не получила много информации. Она говорила лишь о подозрении на риск. Я попросила у нее сетевую схему компьютерного зала и список систем, подозреваемых на риск.Мария предоставила мне временный офис с телефоном и системой. Она также
Кафедра Ваннаха: Период 4К Михаил Ваннах
Кафедра Ваннаха: Период 4К Михаил Ваннах Опубликовано 21 сентября 2012 года Эры, за исключением архея, названы по давности жизни, следы которой в них обнаруживаются. Протерозой с рачками и радиоляриями, палеозой, начинающийся с трилобитов... Периоды
Универсальные ЭВМ, разработанные под руководством С. А. Лебедева в московский период
Универсальные ЭВМ, разработанные под руководством С. А. Лебедева в московский период БЭСМТехнические характеристики: быстродействие — 8–10 тыс. операций в секунду, представление чисел с плавающей запятой, разрядность 39, система ламповых элементов, внешняя память на