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)
En C++, hay dos formas de acceder a las variables y funciones del espacio de nombres.
- 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
- 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
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.
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
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