Когда хочется задать тип принудительно

Когда хочется задать тип принудительно

В некоторых случаях нужно выполнить присваивание, не соответствующее структуре наследования, и допустить, что при этом в качестве результата не обязательно будет получен объект. Такого, обычно, не бывает, когда ОО-метод применяется к объектам, внутренним для некоторой программы. Но можно, например, поучить по сети объект с его объявленным типом, и поскольку нет возможности контролировать источник происхождения этого объекта, то объявления статических типов ничего не гарантируют и прежде, чем использовать объект, необходимо проверить его тип.

При получении коробки с надписью "Животное" вместо ожидаемой надписи "Собака", можно соблазниться и все же ее открыть, зная, что, если внутри будет не собака, то потеряется право на возврат посылки и, в зависимости от того, что из нее появится, можно лишиться даже возможности рассказать эту историю.

В таких случаях требуется новый механизм - попытка присваивания, который позволит писать команду вида r ?= p (где ?= обозначает символ попытки присваивания, в отличие от := для обычного присваивания), означающую "выполнить присваивание, если тип объекта соответствует r, а иначе сделать r пустым". Но мы пока не готовы понять, как такая команда сочетается с ОО-методом, поэтому вернемся к этому вопросу в следующих лекциях. (А до того, считайте, что вы ничего об этом не читали).

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Когда собирать?

Из книги автора

Когда собирать? Пшеницу можно собирать, когда вершки становятся коричневыми, а морковь – когда видны торчащие оранжевые вершки. Коричневых вершков появляются, когда картофель созревает. Арбузы или тыквы собирают, когда рядом со стеблем появляются плоды. Как только


Когда яд полезен

Из книги автора

Когда яд полезен В случае необходимости вы можете съесть сырую курицу, гнилое мясо и даже паучьи глаза. Вы отравитесь, но потом поправитесь при высоком уровне здоровья. Если вы выпьете коровье молоко, то исцелитесь быстрее. Съев паучьи глаза, вы получите четыре очка


(2.14) Как перенести уже установленный W2k на другой винт (больший по pазмеpу), с сохранением всех настроек. Hе хочется все заново пеpеустанавливать…

Из книги автора

(2.14) Как перенести уже установленный W2k на другой винт (больший по pазмеpу), с сохранением всех настроек. Hе хочется все заново пеpеустанавливать… Загружаемся со старого жесткого диска. Создаём на новом диске разделы нужного нам размера и форматируем их. Делаем загрузочный


(3.18) Как задать пpиоpитет пpоцесса еще пpи его запyске? Чтоб не лазить постоянно для этого в task manager?

Из книги автора

(3.18) Как задать пpиоpитет пpоцесса еще пpи его запyске? Чтоб не лазить постоянно для этого в task manager? Запуская с помощью консольной команды start можно запускать приложение с нужным приоритетом, указывать время, через которое приложение должно быть закрыто, и некоторые другие


(3.35) После изменения прав доступа к файлам (security permissions) на NTFS хочется вернуть все к тому виду, как было после установки. Возможно ли это?

Из книги автора

(3.35) После изменения прав доступа к файлам (security permissions) на NTFS хочется вернуть все к тому виду, как было после установки. Возможно ли это? Да, это возможно. Более того, это просто необходимо, если вы поставили W2k на FAT или FAT32, а затем отконвертировали файловую систему в NTFS (см.


Глава 8. Что, где, когда и как?

Из книги автора

Глава 8. Что, где, когда и как? Интернет – практически безразмерное хранилище для информации самого разного рода. Рассказать даже вкратце о том, что «складируют» в Сети ее пользователи, совершенно невозможно. Однако я рискнул выбрать для вас некоторое количество полезных


2.17.После изменения прав доступа к файлам (security permissions) на NTFS хочется вернуть все к тому виду, как было после установки. Возможно ли это?

Из книги автора

2.17.После изменения прав доступа к файлам (security permissions) на NTFS хочется вернуть все к тому виду, как было после установки. Возможно ли это? Да, это возможно. Более того, это просто необходимо, если вы поставили XP на FAT или FAT32, а затем cконвертировали файловую систему в NTFS. Для


3.8. Как задать пpиоpитет процесса еще пpи его запyске, чтоб не лазить постоянно для этого в task manager?

Из книги автора

3.8. Как задать пpиоpитет процесса еще пpи его запyске, чтоб не лазить постоянно для этого в task manager? Запуская с помощью консольной команды start можно запускать приложение с нужным приоритетом, указывать время, через которое приложение должно быть закрыто, и некоторые другие


Когда использовать комментарии

Из книги автора

Когда использовать комментарии Не скупитесь на комментарии. Приучите себя добавлять хотя бы краткие объяснения по поводу каждой отдельной строки программного кода и описывать подробно функциональное назначение групп операторов, При объявлении переменной добавьте


Когда объявлять переменные

Из книги автора

Когда объявлять переменные Все эксперты, как один, рекомендуют объявлять переменные заранее, а не там, где они должны первый раз использоваться в программе. Один из очевидных аргументов в пользу этого - упрощение программного кода. Другие аргументы начинают работать,


13.1.5. Когда простоты не достаточно

Из книги автора

13.1.5. Когда простоты не достаточно Неудачное решение вопроса простоты Unix-программистами заключается в том, что они часто действуют так, будто вся необязательная сложность является случайной. Более того, традиция Unix сильно склоняется к тому, чтобы удалять функции во


Когда индексировать

Из книги автора

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


10. Когда открыть, а когда закрыть

Из книги автора

10. Когда открыть, а когда закрыть Рассмотрев деловые модели, которые поддерживают разработку программного обеспечения с открытыми текстами, мы можем теперь приблизиться к общему вопросу о том, когда исходному коду, с точки зрения экономики, имеет смысл быть «открытым», а


10.2. Какие параметры экрана вы можете задать

Из книги автора

10.2. Какие параметры экрана вы можете задать Наверное, первое, что вы захотите настроить в своей системе — это установить другие параметры экрана, а именно изменить графическую тему и фон рабочего стола. Для настройки экрана используется апплет Экран (рис. 79). Рис. 79.


3.8. Как принудительно завершить «зависшее» приложение?

Из книги автора

3.8. Как принудительно завершить «зависшее» приложение? Иногда приложение вдруг ни с того ни с сего перестает реагировать на щелчок мыши и на нажатие клавиш. Тогда говорят, что программа «зависла». В таком случае нам остается только принудительно завершить приложение, а