Compartir a través de


declaración de espacio de nombres

una declaración de espacio de nombres identifica y asigna un nombre único a un espacio de nombres usuario-declarado.

namespace identifier

Comentarios

Estos espacios de nombres se utilizan para resolver el problema del conflicto de nombres en programas grandes y bibliotecas.Los programadores pueden utilizar espacios de nombres para desarrollar nuevos componentes de software y bibliotecas sin generar conflictos de nomenclatura con componentes existentes.

Por ejemplo:

// namespace_declaration1.cpp
namespace X
{
   int i;
   double j;
}
int main()
{
   X::i++;
}

La sintaxis para una definición de espacio de nombres es:

namespace identifier
{
   [ declaration-list ]
}

Un espacio de nombres-definición se pueden anidar dentro de otro espacio de nombres-definición.Cada espacio de nombres-definición debe aparecer en el ámbito de archivo o directamente dentro de otro espacio de nombres-definición.

Por ejemplo:

// namespace_declaration2.cpp
// C2870 expected
namespace A
{
   int j = 3;
   int f(int k);
}

namespace Outer
{
   int n = 6;
   int func(int num);

   namespace Inner
   {
      float f = 9.993;
   }
}

int main()
{
   namespace local   // C2870: not at global scope
   {
   }
}

A diferencia de otras regiones declarativas, la definición de un espacio de nombres se puede dividir en varias partes de una única unidad de traducción.

// namespace_declaration3.cpp
namespace A
{
   // declare namespace A variables
   int i;
   int j;
}

namespace B
{
}

namespace A
{
   // declare namespace A functions
   void func(void);
   int int_func(int i);
}

int main()
{
}

Cuando un espacio de nombres se continúa de esta manera, después de la definición inicial, la continuación se denomina una definición de espacio de nombres de la extensión.La definición original de ese espacio de nombres se conoce como definición original del espacio de nombres.

El uso de esta notación podría ser difícil con nombres más largos o en programas grandes.una declaración using, directiva using, y alias de espacio de nombres proporcionan maneras más directas de hacer referencia a los miembros del espacio de nombres.

Una declaración de espacio de nombres , si implica un nuevo espacio de nombres, un espacio de nombres sin nombre, o una definición extendida del espacio de nombres, se debe acompañado de un cuerpo del espacio de nombres delimitado entre llaves.la instrucción

namespace X;

es un error de sintaxis.la instrucción

namespace X{};

no es un error de sintaxis, pero no tiene sentido.

Para obtener más información, vea espacios de nombres.

El identificador de una definición original del espacio de nombres debe ser único en la región declarativa donde se utiliza.El identificador es el nombre del espacio de nombres y se utiliza para hacer referencia a sus miembros.

La región declarativa de una definición de espacio de nombres es su cuerpo.El cuerpo se debe agregar entre las llaves () y puede contener declaraciones o definiciones de variables, funciones, objetos, de plantillas, y los espacios de nombres anidados.Las declaraciones de la declaración-lista se conocen a los miembros del espacio de nombres.El nombre de cada miembro del espacio de nombres automáticamente se califica con el nombre del espacio de nombres y de operador de resolución de ámbito.

Vea también

Referencia

Espacios de nombres (C++)

Palabras clave de C++

Espacios de nombres sin nombre