Почему важно писать «используя пространство имен std» в программе на C++?
В этой статье мы обсудим использование «использования пространства имен std» в программе на C++.
Необходимость пространства имен :
- Поскольку одно и то же имя не может быть присвоено нескольким переменным, функциям, классам и т. д. в одной области видимости.
- Поэтому, чтобы преодолеть эту ситуацию, вводится пространство имен.
Программа 1:
Ниже приведена программа на C++, иллюстрирующая использование пространства имен с одинаковыми именами функции и переменных:
Объяснение:
- В приведенном выше примере программы и n1 , и n2 имеют переменную и функцию с одинаковыми именами x и fun() соответственно.
- Пространство имен используется для уменьшения или ограничения области действия любой переменной или функции.
- Как и в приведенном выше коде, переменная x и метод fun() были ограничены пространствами имен n1 и n2 . Таким образом, их область применения не выходила за пределы n1 или n2 .
- Каждый раз, когда использование оператора разрешения области (::) в переменной или определенной функции не требуется, это можно решить с помощью директивы « using ».
- Использование директивы означает включение всего кода, написанного в пространстве имен, в закрывающую область.
Программа 2:
Ниже приведена программа на C++, демонстрирующая использование директивы «using»:
Объяснение:
- В приведенной выше программе после написания «using namespace n1 » нет необходимости использовать разрешение области для использования членов n1 .
- Его можно интерпретировать как «использование» копий кода, написанного в пространстве имен, в области, в которой он был написан.
Если внутри main() написано «using namespace n1 » и попытка использовать члены (в данном случае fun() и x ) в разных функциях, это выдаст ошибку времени компиляции.
Программа 3:
Ниже приведена программа на C++, иллюстрирующая использование «использования пространства имен» внутри функции main():
C++
// C++ program illustrating the use // of "using namespace" inside main() #include <iostream> using namespace std; // Namespace n1 namespace n1 { int x = 2; void fun() { cout << "This is fun() of n1" << endl; } } // Function calling function void print() { // Gives error, used without :: fun(); } // Driver Code int main() { // Namespace inside main using namespace n1; cout << x << endl; // Function Call fun(); return 0; } |
Выход:
Объяснение:
- Известно, что «std» (сокращение от стандарта) — это пространство имен, члены которого используются в программе.
- Таким образом, членами пространства имен «std» являются cout, cin, endl и т. д.
- Это пространство имен присутствует в заголовочном файле iostream.h.
- Ниже приведен фрагмент кода на C++, показывающий содержимое, написанное внутри iostream.h:
C++
// Code written in the iostream.h file namespace std { ostream cout; i0stream cin; // and some more code } |
Объяснение:
- Теперь, когда cout<<“GeeksforGeeks”; написано, компилятор ищет cout в нашей программе, которая хранится в пространстве имен std, поэтому компилятору дана инструкция, что, если компилятор ничего не находит в текущей области, попробуйте найти это в пространстве имен std.
- Нет необходимости писать пространство имен, просто используйте разрешение области видимости (::) каждый раз, когда используются члены std. Например, std::cout , std::cin , std::endl и т. д.
Программа 4:
Ниже приведена программа C++, иллюстрирующая использование std:
Объяснение: Вывод программы будет одинаковым, независимо от того, пишете ли вы «используя пространство имен std» или используете разрешение области.