РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
26 of 815 menu

Директива using namespace

Директива using namespace делает все имена из указанного пространства имен доступными в текущей области видимости без необходимости каждый раз писать префикс этого пространства. В качестве параметра директива принимает имя пространства имен, которое требуется подключить. После применения директивы компилятор при поиске имен будет автоматически обращаться к указанному пространству.

Чаще всего директиву using namespace применяют для пространства имен std, чтобы не писать std:: перед каждым вызовом cout, cin, string и другими элементами стандартной библиотеки. Однако при этом следует помнить, что подключение всех имен сразу может привести к конфликтам имен, поэтому в больших проектах предпочтительнее использовать более точечную директиву using.

Синтаксис

using namespace name;

Пример

Давайте подключим пространство имен std и выведем строку на экран, не указывая префикс std:::

#include <iostream> using namespace std; int main() { cout << "abcde" << endl; return 0; }

Результат выполнения кода:

"abcde"

Пример

Давайте сравним работу с директивой using namespace и без нее. Сначала напишем код без директивы, используя полное имя std::cout:

#include <iostream> int main() { std::cout << "12345" << std::endl; return 0; }

Результат выполнения кода:

12345

Пример

Директиву using namespace можно применять не только к пространству std, но и к собственным пространствам имен. Давайте создадим пространство math и подключим его внутри функции:

#include <iostream> namespace math { int square(int x) { return x * x; } } int main() { using namespace math; std::cout << square(5) << std::endl; return 0; }

Результат выполнения кода:

25

Обратите внимание, что директива была применена внутри функции main, поэтому ее действие ограничено только этой функцией. За ее пределами имя square снова потребует указания пространства имен math::.

Смотрите также

  • ключевое слово namespace,
    которое создает пространство имен
  • директива using,
    которая подключает отдельное имя из пространства
  • оператор ::,
    который обращается к имени в пространстве имен
  • директива #include,
    которая подключает заголовочные файлы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить