Разбираем, зачем в C++ нужны пространства имён: как
namespace помогает избегать конфликтов имён в больших проектах и при подключении библиотек, как читать и писать квалифицированные имена вида
ns::name (включая
std::cout), как устроены вложенные пространства (
app::model,
app::ui), как «продолжать» один и тот же
namespace в разных файлах, и почему
main всегда остаётся в глобальной области видимости.