Применение пространства имен.
Два одинаковых идентификатора в одной области видимости существовать не могут. Например, в одной программе невозможно создать две функции fire() с одинаковыми прототипами, одна из которых зажигала бы факел, а другая производила стрельбу из пистолета, кроме как с помощью пространства имен. Пространства имен позволяют разместить две функции в различных областях видимости, не создавая при этом проблем. Кроме того, можно разместить все функции, связанные с определённым направлением, в отдельном пространстве имен. Например, функция fire(), зажигающая факел, попадет в пространство имен exploration (исследование) наряду с другими функциями исследования, а функция fire(), ответственная за стрельбу из пистолета, попадёт в пространство имен combat (боевое).
Для осуществления доступа к компонентам пространства имен используется оператора разрешения области видимости. Синтаксис доступа выглядит так:
Глобальное пространство имен. Глобальное пространство имен - это название области видимости самого высокого уровня, то есть той, где существуют глобальные переменные. Чтобы обратиться к члену глобального пространства, часто приходится пользоваться оператором разрешения области видимости (::). Это необходимо, если существуют совпадающие имена в локальном и глобальном пространствах, поскольку по умолчанию всегда выбирается переменная с наименьшей областью видимости. Синтаксис обращения к члену глобального пространства следующий:
Повторные объявления пространств имен. Если два пространства имен имеют одинаковые имена, второе считается логическим продолжением первого. И компилятор считает идентичными конструкции следующего вида:
C++ помещает оба пространства в одну область видимости при компиляции программы, это означает, что в дублирующихся пространствах имен не могут существовать члены с одинаковыми именами. Прямой доступ к пространствам имен. Если Вы уверены, что пространство не содержит дублирующих членов, то можете произвести слияние его с глобальным пространством имен. Благодаря этому исчезает необходимость постоянно набирать идентификатор пространства имен и оператор разрешения области видимости. Существует два метода прямого доступа к пространству имен:
Объявление using. Объявление using показывает, что работа, будет производиться с определенным членом области видимости более низкого уровня. В результате отпадает необходимость в явном указании области видимости. Синтаксис объявления using следующий:
Директива using. Директива using показывает, что работа будет производиться со всеми членами конкретного пространства имен. Директива работает также, как и объявление, с той лишь разницей, что обеспечивает прямой доступ ко всем членам пространства. Воспользовавшись ею, вы избавляетесь от необходимости уточнять имена членов этого пространства до конца программы. Перед её применением следует убедиться, что во включаемом пространстве имен отсутствуют идентификаторы, дублирующие идентификаторы глобального пространства. Синтаксис директивы using таков:
C примером использования этой конструкции вы уже сталкивались, он присутствует во всех написанных вами программах:
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|