Espacio de nombres en C++ | Conjunto 3 (Acceso, creación de encabezado, anidamiento y alias)

Espacio de nombres en C++ | Conjunto 1 (Introducción)
Espacio de nombres en C++ | Conjunto 2 (espacio de nombres ampliado y espacio de nombres sin nombre)

Diferentes formas de acceder al espacio de nombres

En C++, hay dos formas de acceder a las variables y funciones del espacio de nombres.

  1. forma normal

    // C++ program to demonstrate accessing of variables
    // in normal way, i.e., using "::"
    #include <iostream>
    using namespace std;
      
    namespace geek
    {
        int rel = 300; 
    }
      
    int main()
    {
        // variable ‘rel’ accessed 
        // using scope resolution operator
        cout << geek::rel << "\n"// prints 300
      
        return 0;
    }

    Producción :

    300
    
  2. Directiva de «uso»

    // C++ program to demonstrate accessing of variables
    // in normal way, i.e., using "using" directive
    #include <iostream>
    using namespace std;
      
    namespace geek
    {
        int rel = 300; 
    }
      
    // use of ‘using’ directive
    using namespace geek;
      
    int main()
    {
       // variable ‘rel’ accessed 
       // without using scope resolution variable
       cout << rel << "\n";        //prints 300
        
       return 0;
    }

    Producción:

    300
    

Uso de espacio de nombres en archivos de encabezado

Podemos crear un espacio de nombres en un archivo y acceder a los contenidos usando otro programa. Esto se hace de la siguiente manera.

  • Necesitamos crear dos archivos. Uno que contenga el espacio de nombres y todos los miembros de datos y funciones miembro que queremos usar más adelante.
  • Y el otro programa puede llamar directamente al primer programa para usar todos los miembros de datos y funciones de miembro en él.

Archivo 1

// file1.h 
namespace foo
{
    int value() 
    { 
       return 5;    
    }
}

Archivo 2

// file2.cpp - Not to be executed online
#include <iostream>
#include “file1.h” // Including file1
using namespace std;
  
int main () 
{
    cout << foo::value();
    return 0;
}

Aquí podemos ver que el espacio de nombres se crea en file1.h y el value() de ese espacio de nombres se llama en file2.cpp.

Espacios de nombres anidados

En C++, los espacios de nombres también se pueden anidar, es decir, un espacio de nombres dentro de otro. La resolución de las variables del espacio de nombres es jerárquica.

// C++ program to demonstrate nesting of namespaces
#include <iostream>
using namespace std;
  
// Nested namespace
namespace out
{
  int val = 5; 
  namespace in
  {
      int val2 = val;    
  }
}
  
// Driver code
int main()
{
  cout << out::in::val2;   // prints 5
  return 0;
}

PRODUCCIÓN :

5

Alias ​​de espacio de nombres

En C++, puede usar un nombre de alias para el nombre de su espacio de nombres, para facilitar su uso. Los espacios de nombres existentes se pueden alias con nuevos nombres, con la siguiente sintaxis:

namespace new_name = current_name;
#include <iostream>
  
namespace name1 
{
    namespace name2 
    {
         namespace name3 
         {
             int var = 42;
         }
    }
}
  
// Aliasing 
namespace alias = name1::name2::name3;
   
int main()
{
    std::cout << alias::var << '\n';
}

Producción :

42

Este artículo es una contribución de Abhinav Tiwari . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuido@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *