En este artículo, discutiremos el uso de «using namespace std» en el programa C++ .
Necesidad de espacio de nombres :
- Como no se puede dar el mismo nombre a múltiples variables , funciones , clases , etc. en el mismo ámbito.
- Entonces, para superar esta situación, se introduce el espacio de nombres.
Programa 1:
A continuación se muestra el programa C++ que ilustra el uso del espacio de nombres con el mismo nombre de función y variables:
C++
// C++ program to illustrate the use // of namespace with same name of // function and variables #include <iostream> using namespace std; // Namespace n1 namespace n1 { int x = 2; // Function to display the message // for namespace n1 void fun() { cout << "This is fun() of n1" << endl; } } // Namespace n2 namespace n2 { int x = 5; // Function to display the message // for namespace n2 void fun() { cout << "This is fun() of n2" << endl; } } // Driver Code int main() { // The methods and variables called // using scope resolution(::) cout << n1::x << endl; // Function call n1::fun(); cout << n2::x << endl; // Function ca;; n2::fun(); return 0; }
2 This is fun() of n1 5 This is fun() of n2
Explicación:
- En el programa de ejemplo anterior, tanto n1 como n2 tienen una variable y una función con el mismo nombre x y fun() respectivamente.
- El espacio de nombres se utiliza para disminuir o limitar el alcance de cualquier variable o función.
- Como en el código anterior, la variable x y el método fun() estaban limitados a los espacios de nombres n1 y n2 . Por lo tanto, su alcance no estaba fuera de n1 o n2 .
- Cada vez que no se requiere usar el operador de resolución de alcance (::) en una variable o una función definida, se puede resolver con la directiva » usando «.
- La directiva de uso significa incluir todo el código escrito en el espacio de nombres en el ámbito de cierre.
Programa 2:
A continuación se muestra el programa C++ que demuestra el uso de la directiva «using» :
C++
// C++ program to demonstrate the use // of "using" directive #include <iostream> using namespace std; // Namespace n1 namespace n1 { int x = 2; void fun() { cout << "This is fun() of n1" << endl; } } // Namespace is included using namespace n1; // Driver Code int main() { cout << x << endl; // Function Call fun(); return 0; }
2 This is fun() of n1
Explicación:
- En el programa anterior, después de escribir «usando el espacio de nombres n1 «, no es necesario usar la resolución de alcance para utilizar los miembros de n1 .
- Puede interpretarse como «usar» copias del código escrito en el espacio de nombres en el ámbito en el que se ha escrito.
Si «usando el espacio de nombres n1 » está escrito dentro de main() e intenta usar los miembros ( fun() yx en este caso) en las diferentes funciones, daría un error de tiempo de compilación .
Programa 3:
A continuación se muestra el programa C++ que ilustra el uso de «uso de espacio de nombres» dentro de la función 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; }
Producción:
Explicación:
- Se sabe que “std” (abreviatura del estándar) es un espacio de nombres cuyos miembros se utilizan en el programa.
- Entonces, los miembros del espacio de nombres «std» son cout , cin , endl , etc.
- Este espacio de nombres está presente en el archivo de encabezado iostream.h .
- A continuación se muestra el fragmento de código en C++ que muestra el contenido escrito dentro de iostream.h:
C++
// Code written in the iostream.h file namespace std { ostream cout; i0stream cin; // and some more code }
Explicación:
- Ahora cuando cout<<“GeeksforGeeks”; está escrito, el compilador busca cout en nuestro programa que se mantiene en el espacio de nombres estándar, por lo que la instrucción dada al compilador de que si el compilador no encuentra nada en el alcance actual, intente encontrarlo en el espacio de nombres estándar.
- No es necesario escribir espacios de nombres, simplemente use la resolución de alcance (::) cada vez que use los miembros de std. Por ejemplo, std::cout , std::cin , std::endl , etc.
Programa 4:
A continuación se muestra el programa C++ que ilustra el uso de std:
C++
// C++ program to illustrate // the use of std #include <iostream> // Driver Code int main() { int x = 10; std::cout << " The value of x is " << x << std::endl; return 0; }
The value of x is 10
Explicación: La salida del programa será la misma ya sea que escriba «usando el espacio de nombres estándar» o use la resolución de alcance.
Publicación traducida automáticamente
Artículo escrito por ankitsinghrajput y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA