Треки
/
C++
C++
/
Салабус
/
Простори імен
Пр

Простори імен у C++

3 вправи

Про концепцію Простори імен

Простори імен - це важливий засіб організації коду. Дві функції можуть мати колізію імен, яку можна розвʼязати, розмістивши їх у різних просторах імен. Простори імен можуть бути вкладеними, і це допомагає структурувати великі бази коду. Доступ до просторів імен здійснюється через оператор розвʼязання області видимості ::.

У прикладі нижче показано використання двох різних функцій foo. Їх використовують разом, дописавши перед кожною відповідний простір імен.

namespace my_ns {
    int foo() {
        return 44;
    }
    namespace my_inner_ns {
        int baz() {
            return 90;
        }
    }
}
namespace my_other_ns {
    int foo() {
        return -2;
    }
}
int myresult{my_ns::foo() + my_other_ns::foo() * my_ns::my_inner_ns::baz()};
Advanced

Глибоко вкладені простори імен можуть бути надто громіздкими. Багатослівність можна прибрати, імпортувавши простір імен за допомогою using. Це переносить усі імена в глобальний простір імен. Щоб зберегти хоч якесь розрізнення, можуть допомогти псевдоніми.

int my_other_result{my_ns::my_inner_ns::baz()};

using namespace my_ns::my_inner_ns; // importing the complete namespace
int also_other_result{baz()};

namespace m = my_ns; // setting an alias
namespace o = my_other_ns;

int also_my_result{m::foo() + o::foo() * m::my_inner_ns::baz()};
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Простори імен