Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

R.10.4 Сводка правил области видимости





Теперь можно свести воедино правила областей видимости для программына С++. Эти правила одинаково применимы для всех имен (включаяимя-typedef ($$R.7.1.3) и имя-класса ($$R.9.1)) и в любомконтексте, для которого они допустимы по синтаксису языка. Здесьрассматриваются только области видимости на лексическом уровне,вопросы связывания обсуждаются в $$R.3.3. Понятие момента описаниябыло введено в $$R.3.2. Всякое использование имени должно быть однозначным (не считаяперегрузки) в области его видимости ($$R.10.1.1). Правила доступа($$R.11) начинают действовать только тогда, когда имя можно однозначнонайти в области его видимости. Только при условии, что права доступак имени не нарушены, начинается проверка типа объекта, функции илиэлемента перечисления. Имя, которое используется вне любой функции или класса, или передкоторым стоит унарная операция разрешения области видимости::(и которое не уточняется бинарной операцией:: или операциями ->или.), должно быть именем глобального объекта, или функции, илиэлемента перечисления, или типа. Имя, задаваемое после X:: или obj., где obj типа X или типассылка на X, а также имя, задаваемое после ptr->, где ptr типа указательна X, должно быть именем члена класса X или членом базового поотношению к X класса. Помимо этого, в обращении ptr->имя ptr можетбыть объектом класса Y, в котором есть функция operator->(),описанная таким образом, что ptr->operator() в конечном счетеоказывается указателем на X ($$R.13.4.6). Имя, которое не уточняется одним из описанных выше способов, и,которое используется в функции, не являющейся членом класса,должно быть описано в том блоке, где оно используется, или вобъемлющем блоке или должно быть глобальным. Описание локального именискрывает описания того же имени в объемлющих блоках, а также егоописания как глобального имени. В частности, перегрузка имениневозможна для имен в разных областях видимости ($$R.13.4). Имя, которое не уточняется одним из описанных выше способов, и,которое используется в функции, являющейся нестатическим членомкласса X, должно быть описано или в том блоке, где оно используется,или в объемлющем блоке, и оно должно быть членом класса X, иличленом базового по отношению к X класса, или это имя должно бытьглобальным. Описание локальных имен скрывает описание этих же именв объемлющих блоках, в членах класса этой функции и среди глобальныхимен. Описание члена скрывает аналогичные описание с тем же именемв базовых классах и среди глобальных имен. Имя, которое не уточняется одним из описанных выше способов, и,которое используется в статической функции-члене класса X, должнобыть описано или в том блоке, где оно используется, или в объемлющемблоке, и должно быть статическим членом класса X, или базового поотношению к X класса, или оно должно быть глобальным именем. Имя формального параметра функции, заданное при ее определении($$R.8.3), принадлежит области видимости, совпадающей с наибольшимблоком функции (в частности, является локальным именем). Имяформального параметра функции, заданное в ее описании ($$R.8.2.5),а не определении, принадлежит локальной области видимости, котораяисчезает сразу же после описания функции. Стандартные значенияпараметров находятся в области видимости, определяемой в моментописания ($$R.3.2) формальных параметров функции; в них не должныиспользоваться локальные переменные или нестатические члены класса,и они вычисляются при каждом вызове функции ($$R.8.2.6). Инициализатор-ctor ($$R.12.6.2) вычисляется в области видимостинаибольшего блока конструктора, для которого он задан. В частности,в нем можно использовать имена формальных параметров.







Дата добавления: 2015-09-04; просмотров: 330. Нарушение авторских прав; Мы поможем в написании вашей работы!




Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

Концептуальные модели труда учителя В отечественной литературе существует несколько подходов к пониманию профессиональной деятельности учителя, которые, дополняя друг друга, расширяют психологическое представление об эффективности профессионального труда учителя...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

КОНСТРУКЦИЯ КОЛЕСНОЙ ПАРЫ ВАГОНА Тип колёсной пары определяется типом оси и диаметром колес. Согласно ГОСТ 4835-2006* устанавливаются типы колесных пар для грузовых вагонов с осями РУ1Ш и РВ2Ш и колесами диаметром по кругу катания 957 мм. Номинальный диаметр колеса – 950 мм...

Философские школы эпохи эллинизма (неоплатонизм, эпикуреизм, стоицизм, скептицизм). Эпоха эллинизма со времени походов Александра Македонского, в результате которых была образована гигантская империя от Индии на востоке до Греции и Македонии на западе...

Демографияда "Демографиялық жарылыс" дегеніміз не? Демография (грекше демос — халық) — халықтың құрылымын...

Studopedia.info - Студопедия - 2014-2025 год . (0.012 сек.) русская версия | украинская версия