Пространства имен в C ++ совсем не такие, как в .Net, ActionScript и Java (которые используют одну и ту же концепцию).Они вовсе не являются одним и тем же понятием.
В C ++ пространства имен находятся в основном там, чтобы обеспечить инкапсуляцию нескольких типов и функций в именованном контексте, пространстве имен.Речь идет только об именовании и доступе к именам.
В .Net, ActionScript и Java пространства имен больше относятся к модулям, чем к именам.Они вынуждают разработчика разрабатывать его код в отдельных пространствах имен, каждое из которых имеет одну цель - контекст.Поскольку эти языки являются динамическими (вместо статических, как C ++), пространства имен позволяют позднее связывать типы с кодом, что ускоряет компиляцию, потому что вам нужно только иметь каноническое имя (пространство имен + имя) типа, который вы хотите использовать в файле,
В C ++ нет модуля comcept, только модули компиляции, которые вообще ничего не знают друг о друге.
Теперь об их использовании часто бывает полезно использовать пространство имен в C ++ дляинкапсулировать модуль (исполняемый или dll / so), некоторый код реализации или любую полезную часть кода.При этом в большинстве случаев лучше не иметь слишком глубокую иерархию пространств имен.По историческим причинам многие разработчики на C ++ даже долгое время не знали, что в C ++ есть функция с именем namespace.Теперь то, что мы называем «современным C ++», предполагает, что вы знаете об этом, но много старого кода C ++ по-прежнему используется сегодня, и, возможно, это то, на что вы обращаете внимание, когда говорите о пространствах имен.
пространства имен в C ++ являютсядругая особенность, чем в других языках, делает его более или менее заметным в коде.На самом деле, он настолько отличается, что вы вообще не будете управлять им одинаково, что делает код действительно трудным для понимания, когда вы приходите, скажем, из .Net.Так что вам не следует одинаково использовать пространства имен между языками, это действительно разные понятия.