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

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

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. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


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


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


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Методика обучения письму и письменной речи на иностранном языке в средней школе. Различают письмо и письменную речь. Письмо – объект овладения графической и орфографической системами иностранного языка для фиксации языкового и речевого материала...

Классификация холодных блюд и закусок. Урок №2 Тема: Холодные блюда и закуски. Значение холодных блюд и закусок. Классификация холодных блюд и закусок. Кулинарная обработка продуктов...

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

Схема рефлекторной дуги условного слюноотделительного рефлекса При неоднократном сочетании действия предупреждающего сигнала и безусловного пищевого раздражителя формируются...

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

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