ивочные данные по языку C++_____________________________635

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

Доступ к объявленным переменным и функциям из любой точки файла может
куществляться несколькими способами. Самый простой — с помощью операции
врешения области действия (::). Например, оператор

В: :F1(A::i);

совет функцию F1 из области В и передаст в нее значение переменной i из облас-
А.

Подобный доступ гибкий, но он требует каждый раз указывать область види-
кти. Если явное указание областей видимости сделано для того, чтобы устранить
явившиеся в программе случайные наложения идентификаторов, то явное ука-
ние при каждом применении идентификатора соответствующей области дейст-
я потребует исправлений во многих местах программы и может привести к появ-
вию ошибок. Более простой способ указания области действия — применение
ючевого слова using. Одна из возможных форм применения using:

using namespace имя_области;

Например, если поместить в тексте оператор

using namespace А;

|все последующие операторы будут брать идентификаторы из области А. Тогда,
шример, размещенный где-то в тексте после using оператор

Fl(i);

вовет функцию F1 из области А и передаст в нее значение переменной i из облас-
|А.

Операторы using могут иметь и другую форму, определяющую область для
онкретного идентификатора:

using имя_области :: идентификатор;

Например, после операторов

using A: : F1;

using В: :i;

вратор

Fl(i);

йовет функцию F1 из области А и передаст в нее значение переменной i из облас-
|В.

При объявлени области видимости с помощью namespace в теле объявления
огут присутствивать не только объявления переменных и функций, но и операто-
н namespace, определяющие некоторые внутренние области видимости, и опера-
оры using namespace, ссылающиеся на ранее определенные области. Таким обра-
1М, области видимости могут быть вложенные. Например, объявления могут
меть вид:

namespace A {

)

namespace В (
using namespace A;

namespace С (
i