Любую форму using можно использовать внутри пространства имен, чтобы включить в него имена из другого пространства имен.
Именованные пространства имен позволяют легко избавиться от возможных конфликтов имен. Если два программиста работают над разными частями одной большой программы, то каждый из них может объявить собственное пространство имен (область видимости) и больше не беспокоиться о возможных повторных объявлениях. Главное, чтобы имена пространств имен не совпадали.
Однако старайтесь не использовать глобальную директиву using в заголовочных файлах — это с большой вероятностью может привести к конфликтам имен. Любой другой файл, включивший такой заголовок, «открывает» все имена. Если в этом файле определены такие же имена, то получаем конфликт имен, хотя директива using в файле явным образом не указана — она «спряталась» в заголовке!
СОВЕТ
Стандарт С++ позволяет объявлять синонимы (alias) имен, например: namespace RSDN = Russian_Software_Development_Network;
Обычно синонимы используются для переопределения длинных имен, придуманных разработчиками библиотек.
Пространство имен разрешается разбивать на части, например:
//--модуль ml.срр namespace RSDN {
void fl(void) {...};
int x;
}
//--модуль m2.cpp namespace RSDN {
void f2(void) {...};
int y;
class A{};
}
|