En C++, los espacios de nombres se pueden anidar y la resolución de las variables del espacio de nombres es jerárquica. Por ejemplo, en el código siguiente, el espacio de nombres interior se crea dentro del espacio de nombres exterior , que está dentro del espacio de nombres global. En la línea “int z = x” , x se refiere a outside::x . Si x no hubiera estado en el exterior , entonces esta x se habría referido a x en el espacio de nombres global.
Los espacios de nombres se pueden anidar donde puede definir un espacio de nombres dentro de otro espacio de nombres de la siguiente manera:
namespace namespace_name1 {
// declaraciones de código
namespace namespace_name2 {
// declaraciones de código
}
}
Puede acceder a los miembros del espacio de nombres anidado mediante operadores de resultado de la siguiente manera:
// para acceder a los miembros de namespace_name2
utilizando el espacio de nombres namespace_name1::namespace_name2;
// para acceder a los miembros del espacio de nombres: nombre1
usando el espacio de nombres nombre_espacio de nombres1;
En las declaraciones anteriores, si está utilizando namespace_name1, hará que los elementos de namespace_name2 estén disponibles en el alcance de la siguiente manera:
C++
#include <iostream> using namespace std; // first name space namespace first_space{ void func(){ cout << "Inside first_space" << endl; } // second name space namespace second_space{ void func(){ cout << "Inside second_space" << endl; } } } using namespace first_space::second_space; int main () { // This calls function from second name space. func(); return 0; } // If we compile and run above code, this would produce the following result: // Inside second_space
Inside second_space
CPP
#include<iostream> int x = 20; namespace outer { int x = 10; namespace inner { int z = x; // this x refers to outer::x } } int main() { std::cout<<outer::inner::z; //prints 10 getchar(); return 0; }
10
La salida del programa anterior es 10. En un Node lateral, a diferencia de los espacios de nombres de C++, los paquetes de Java no son jerárquicos. 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