Студопедия — R.10.4 Сводка правил области видимости
Студопедия Главная Случайная страница Обратная связь

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

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



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

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

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Приложение Г: Особенности заполнение справки формы ву-45   После выполнения полного опробования тормозов, а так же после сокращенного, если предварительно на станции было произведено полное опробование тормозов состава от стационарной установки с автоматической регистрацией параметров или без...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Ваготомия. Дренирующие операции Ваготомия – денервация зон желудка, секретирующих соляную кислоту, путем пересечения блуждающих нервов или их ветвей...

Билиодигестивные анастомозы Показания для наложения билиодигестивных анастомозов: 1. нарушения проходимости терминального отдела холедоха при доброкачественной патологии (стенозы и стриктуры холедоха) 2. опухоли большого дуоденального сосочка...

Сосудистый шов (ручной Карреля, механический шов). Операции при ранениях крупных сосудов 1912 г., Каррель – впервые предложил методику сосудистого шва. Сосудистый шов применяется для восстановления магистрального кровотока при лечении...

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