¿Por qué es importante escribir «usando el espacio de nombres estándar» en el programa C++?

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;
}
Producción: 

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;
}
Producción: 

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;
}
Producción: 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *