При чтении и записи в предыдущих темах использовались объекты std::cout
и std::cin
соответственно. Причем они использовались с
префиксом std::. Этот префикс указывает, что объекты cout, cin, endl определены в пространстве имен
std. А само двойное двоеточие :: представляет оператор области видимости (scope operator), который позволяет указать, в каком пространстве
имен определен объект. И без префикса эти объекты по умолчанию мы использовать не можем.
Однако подобная запись может показаться несколько громоздкой. И в этом случае можно использовать оператор using, который позволяет ввести в программу объекты из различных пространств имен.
Использование оператора using имеет следующий формат:
using пространство_имен::объект
Например, пусть у нас есть следующая программа:
#include <iostream> int main() { int age; std::cout << "Input age: "; std::cin >> age; std::cout << "Your age: " << age << std::endl; }
Здесь используются сразу три объекта из пространства имен std: cout
, cin
и endl
. Перепишем программу с использованием using:
#include <iostream> using std::cin; using std::cout; using std::endl; int main() { int age; cout << "Input age: "; cin >> age; cout << "Your age: " << age << endl; }
Для каждого объекта из пространства std определяется свое выражение using. При этом программа будет работать также как и раньше.
Ключевое слово using также позволяет определять псевдонимы для типов. Это может пригодиться, когда мы работаем с типами с длинными названиями, а определение коротких псевдонимов позволит сократить код. Например:
#include <iostream> using ullong = unsigned long long; int main() { ullong n {10234}; std::cout << n << std::endl; }
В данном случае для типа unsigned long long
определен псевдоним ullong
. Стоит отметить, что это именно определение псевдонима, а НЕ определение
нового типа.
Стоит отметить, что для определения псевдонимов в С++ также может использоваться старый подход в стиле языка С с помощью оператора typedef
:
#include <iostream> typedef unsigned long long ullong; int main() { ullong n {10234}; std::cout << n << std::endl; }