Многие разработчики C ++ не используют пространства имен, к сожалению. Когда я начинал с C ++, я не использовал их долгое время, пока не пришел к выводу, что могу лучше использовать пространства имен.
Многие библиотеки работают с пространствами имен, помещая префиксы перед именами. Например, wxWidgets ставит символы «wx» перед всем. Qt ставит "Q" перед всем. В этом нет ничего плохого, но требуется, чтобы вы набирали этот префикс заново, даже если это можно сделать из контекста, какие объявления вы имеете в виду. Пространства имен имеют иерархический порядок. Имена, которые лексически ближе к той точке, на которую они ссылаются, находятся ранее. Таким образом, если вы ссылаетесь на «Окно» в вашей среде графического интерфейса, оно найдет «my :: gui :: Window» вместо «:: Window».
Пространства имен включают некоторые приятные функции, которые нельзя использовать без них. Например, если вы поместите свой класс в пространство имен, вы можете определить свободные функции в этом пространстве имен. Затем вы вызываете функцию, не помещая пространство имен вперед, импортируя все имена или выборочно только некоторые из них в текущую область («используя объявление»).
В настоящее время я больше не делаю никаких проектов, не используя их. Они позволяют легко не вводить один и тот же префикс заново, но при этом имеют хорошую организацию и избегают загрязнения имен в глобальном пространстве имен.