При этом возникает вероятность дублирования имен, что препятствует сборке программы
из частей. Для снятия проблемы в C++ был введен механизм логического разделения области глобальных имен программы, который получил название пространства имен.Имена, определенные в пространстве имен, становятся локальными внутри него и могут использоваться независимо от имен, определенных в других пространствах. Таким образом, снимается требование уникальности имен программы.
namespaсe [<имя>] { <Объявления и определения> }
Имя пространства имен должно быть уникальным, но может быть и опущено. Если имя пространства опущено, то считается, что определено неименованное пространство имен, локальное внутри единицы трансляции. Для доступа к его ресурсам используется внутреннее имя $$$.
Например:
namespace ALPHA { // ALPHA – имя пространства имен
long double LD; // объявление переменной
float f(float y) { return y; } // описание функции
}