Declaração de namespace
A espaço para nome declaração identifica e atribui um nome exclusivo para um namespace declarado por usuário.
namespace identifier
Comentários
Esses namespaces são usados para resolver o problema de conflito de nomes no grandes programas e bibliotecas.Os programadores podem usar espaços para nome para desenvolver novos componentes de software e bibliotecas sem causar conflitos de nomes com os componentes existentes.
Por exemplo:
// namespace_declaration1.cpp
namespace X
{
int i;
double j;
}
int main()
{
X::i++;
}
A sintaxe de uma definição de namespace é:
namespace identifier
{
[ declaration-list ]
}
A definição do namespace podem ser aninhados dentro de outro definição do namespace.Cada definição do namespace deve aparecer no escopo do arquivo ou imediatamente dentro de outro definição do namespace.
Por exemplo:
// 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
{
}
}
Ao contrário de outras regiões declarativas, a definição de um espaço para nome pode ser dividida em várias partes de uma única unidade de conversão.
// 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()
{
}
Quando um espaço para nome é continuação dessa maneira, após sua definição inicial, a continuação é chamada um definição de extensão do namespace.A definição original de namespace é conhecida como um a definição original do namespace.
Uso dessa notação pode ser complicado com nomes mais longos ou em programas grandes.O usando a declaração, usando a diretiva, e aliases do namespace fornecem maneiras mais simples de membros do espaço para nome de referência.
A espaço para nome declaração, se ela envolve um novo namespace, um espaço para nome sem nome ou uma definição de namespace estendida, deve ser acompanhada por um corpo de espaço para nome dentro de chaves.A instrução
namespace X;
é um erro de sintaxe.A instrução
namespace X{};
não é um erro de sintaxe, mas não faz sentido.
Para obter mais informações, consulte Namespaces.
O identificador em uma definição de namespace original deve ser exclusivo na região declarativa em que é usado.O identificador é o nome do namespace e é usado para fazer referência a seus membros.
A região declarativa de uma definição de namespace é seu corpo.O corpo deve ser colocado entre chaves ({}) e pode conter declarações ou definições de variáveis, funções, objetos, modelos e espaços para nome aninhados.Declarações de declaração-list são considerados membros do namespace.O nome de cada membro de namespace é automaticamente qualificado pelo nome do seu espaço para nome e o operador de resolução de escopo.