29. Описание и скрытие имен
29. Описание и скрытие имен
Описание определяет имя в области видимости. Таким образом, имя может применяться только в некоторой части программы. Для имени, которое описано в функции (такое имя часто называют локальным), эта область видимости располагается от точки описания до конца блока, в котором появилось описание. Для имени не в функции и не в классе (называемого часто глобальным именем) область видимости находится от точки описания до конца файла, в котором появилось описание. Описание имени в блоке может прятать описание во внутреннем блоке или глобальное имя, т. е. можно переопределять имя внутри блока с целью ссылки на другой объект. После выхода из блока имя опять получает свое прежнее значение.
Например:
int x; // глобальное x
f() {
int x; // локальное x прячет глобальное x x = 1; // присвоить локальному x
{
int x; // прячет первое локальное x
x = 2; // присвоить второму локальному x
}
x = 3; // присвоить первому локальному x
}
int* p = &x // взять адрес глобального x
Скрытие имен обязательно при написании больших программ. Но читающий человек легко может не заметить, что имя скрыто, и некоторые ошибки, которые возникают вследствие этого, очень тяжело обнаружить, в основном потому, что они редкие. Применение для глобальных переменных имен i или x напрашивается на неприятности. С помощью операции разрешения области видимости:: можно применять скрытое глобальное имя. Например: int x;
f()
{
int x = 1; // скрывает глобальное x::x = 2; // присваивает глобальному x
}
Однако возможности применять скрытое локальное имя нет. Область видимости имени начинается точкой описания. То есть имя можно применять даже для задания его собственного значения. К примеру:
int x;
f() {
int x = x; // извращение
}
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Скрытие и открытие вложенных списков
Скрытие и открытие вложенных списков Вложенные списки в полосе навигации чрезвычайно громоздки. Как бы сделать так, чтобы все они были скрыты и появлялись только при щелчке на пункте "внешнего" списка, в который они вложены?Легко!— Изначально все вложенные списки у нас
Скрытие и открытие текста примеров
Скрытие и открытие текста примеров На Web-страницах, описывающих теги HTML и атрибуты стиля CSS, мы поместили текст примеров применения того или иного тега или атрибута стиля. Часто его делают скрывающимся и открывающимся в ответ на щелчок мышью — так можно сделать Web-страницы
Скрытие объектов
Скрытие объектов Чтобы облегчить управление сложными сценами, используют скрытие объектов. Это ускоряет отрисовку объектов в окнах проекций, в результате чего возрастает скорость работы. Скрытые объекты невидимы, и их нельзя выделить.Скрыть объекты можно несколькими
2.4. Предотвращение конфликта имен с помощью пространств имен
2.4. Предотвращение конфликта имен с помощью пространств имен ПроблемаВ несвязанных между собой модулях обнаружены конфликтующие имена или требуется заранее избежать возможности таких конфликтов, создав логические группы кода.РешениеДля структурирования кода
Скрытие строк и столбцов
Скрытие строк и столбцов При работе с таблицей Excel нередко используют множество ячеек, содержащих, например, формулы, какие-либо константы, редко изменяемые данные, которые участвуют в подсчетах различных итогов, но не должны отображаться на экране или в распечатанном
Описание работы пакета OOoFBTools I Конвертер ExportToFB21 1. Описание
Описание работы пакета OOoFBTools I Конвертер ExportToFB21 1. Описание 1.1. НазначениеКроссплатформенный конвертер ExportToFB21 предназначен для конвертации документов из форматов, поддерживаемых OpenOffice.org Writer в формат fb2.1.Т.о. входные форматы документов для ExportToFB21 следующие:.doc, dot, rtf, txt,
Скрытие вкладок
Скрытие вкладок Например, при необходимости можно удалить вкладку Сеть. Для этого в разделе HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowsMediaPlayer необходимо создать REG_DWORD-параметр HideNetworkTab и присвоить ему значение 1. Ниже приведен текст соответствующего REG-файла (расположение на компакт-диске
Скрытие информации (information hiding)
Скрытие информации (information hiding) При создании класса зачастую в него приходится включать компонент, необходимый только для внутренних целей, являющийся частью реализации класса, но не его интерфейса. Другие компоненты этого класса, - возможно, доступные клиентам, - могут
Скрытие информации
Скрытие информации Правило Скрытия Информации можно сформулировать следующим образом: Разработчик каждого модуля должен выбрать некоторое подмножество свойств модуля в качестве официальной информации о модуле, доступной авторам клиентских модулей.Применение этого
У3.3 Ограничения на скрытие информации
У3.3 Ограничения на скрытие информации Представляете ли вы себе обстоятельства, при которых скрытие информации не должно применяться к связям между модулями?
Наследование и скрытие информации
Наследование и скрытие информации Последний вопрос, оставшийся пока без ответа, как наследование взаимодействует с принципом Скрытия информации.В отношениях между классом и его клиентами скрытие информации определяет разработчик класса. Именно он определяет политику
Ковариантность и скрытие потомком
Ковариантность и скрытие потомком Если бы мир был прост, то разговор о типизации можно было бы и закончить. Мы определили цели и преимущества статической типизации, изучили ограничения, которым должны соответствовать реалистичные системы типов, и убедились в том, что
Скрытие потомком
Скрытие потомком Прежде чем искать решение проблемы ковариантности, рассмотрим еще один механизм, способный в условиях полиморфизма привести к нарушениям типа. Скрытие потомком (descendant hiding) - это способность класса не экспортировать компонент, полученный от