Пространства имен и оператор using

В языке программирования C++ при чтении и записи часто используются объекты std::cout и std::cin. Префикс std:: в данном случае указывает, что объекты cout и cin определены в пространстве имен std. При этом двойное двоеточие :: представляет собой оператор области видимости (scope operator), позволяющий указывать, в каком конкретно пространстве имен определен этот объект. То есть без префикса использовать эти объекты мы не сможем.

Но подобная запись может некоторым показаться несколько громоздкой. В таком случае мы можем задействовать оператор using -- он дает возможность вводить в программу объекты из разных пространств имен.

Рассмотрим формат использования оператора using:

Теперь давайте представим, что у нас есть некая программа:

В ней применяются сразу 3 объекта из пространства имен std:: cout, cin и endl. Теперь давайте перепишем программу с помощью оператора using:

Как видно из кода, для каждого объекта из std-пространства определяется свое using-выражение. При этом наша программа будет продолжать работать точно так же, как и раньше.

По материалам https://metanit.com/cpp/tutorial/.