Пространство имён
Ключевое слово namespace позволяет разделить глобальное пространство имен на декларативные области (declarative region). Пространство имен ‒ это область видимости. Общий вид объявления пространства имен таков: namespace { // Объявления } Все, что объявлено в разделе namespace, находится внутри области видимости этого пространства имен. Пространство имен должно объявляться вне всех остальных областей видимости за исключением того, что одно пространство имен может быть вложено в другое. То есть вложенным пространство имен может быть только в другое пространство имен, но не в какую бы то ни было иную область видимости. Это означает, что нельзя объявлять пространства имен, например, внутри функции. Пространство имён ООП Рассмотрим пример пространства имен CounterNameSpace: В нём локализуются имена, использованные при создании простого класса, реализующего обратный счетчик В этом пространстве имен определен класс counter и переменные upperbound и lowerbound, содержащие верхнюю и нижнюю границу диапазона счетчика. Пространство имён ООП namespace CounterNameSpace { int upperbound; int lowerbound; class counter { int count; public: counter(int n) { if(n lowerbound) return count--; Однако, для ссылок на объекты, находящиеся вне этого пространства имён, надо применять оператор разрешения области видимости. Например, чтобы присвоить число 10 переменной upperbound в модуле, находящемся вне пространства имен CounterNameSpace, следует выполнить оператор: CounterNameSpace::upperbound = 10; Как правило, чтобы обратиться к элементу пространства имен извне, следует перед его именем указать имя пространства и оператор разрешения области видимости.