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



Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

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

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

Тема: Кинематика поступательного и вращательного движения. 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью, проекция которой изменяется со временем 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью...

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

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

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

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