Características idênticas do espaço para nome
a. O espaço para nome é geralmente uma palavra -chave e usamos o espaço para nome com qualquer nome único em nosso programa.
b. Usamos namespace em nosso arquivo de origem. O namespace também pode ser usado no arquivo de cabeçalho definido pelo usuário. Isso significa que criamos um arquivo de cabeçalho e dentro do arquivo de cabeçalho, podemos usar namespace.
c. O namespace coloca o nome de seu membro em um espaço distinto, para que eles não entrem em conflito com os nomes em outros namespaces ou namespaces globais.
Criando um espaço de nome no programa C ++
Namespace myExamplea. Diferentemente da definição de classe, a definição de espaço para nome não termina com um semicolon.
b. O espaço para nome deve ser declarado no escopo global ou aninhado dentro de outro espaço para nome (1).
c. O namespace tem outro recurso importante. Podemos usar um nome de alias para o nosso nome de namespace. Pode ser usado como:
namespace me = myExample;Aqui, eu é o nome do alias do espaço para nome do meu exemplo. Se o declararmos uma vez, podemos usar este espaço de nome MyExample como eu ao longo do programa.
Namespaces sem nome
Um espaço para nome com nenhum nome também pode ser permitido no programa C ++.
Espaço para nomeExemplo de programação 1:
#incluirSaída:
Explicação:
Aqui, declaramos que um espaço para nome é chamado de exemplo. Dentro do espaço para nome, declaramos uma variável 'x' e uma função fun1 (). Um exemplo de classe também é declarado dentro do espaço para nome. Outra função chamada fun2 () é declarada no exemplo da classe.
Se atribuirmos alguns valores na variável 'x' em nossa função principal, temos que escrever
MyExample :: x = 6;Porque x variável não é declarado dentro da função principal. É o membro do espaço para nome do meu exemplo. Então, temos que escrever:
Namespace :: x;:: é chamado Operador de resolução de escopo. Temos que escrever namespace :: x = 6 dentro da função principal para acessar a variável x.
Se quisermos chamar a função fun1 (), temos que defini -la. Temos que escrever:
int myExample :: fun1 ()FUN1 () é o membro do MyExample Namespace, temos que defini -lo. Temos que definir FUN1 () com seu espaço de nome e operador de resolução de escopo (: :).
Se quisermos chamar o fun2 () dentro do exemplo da classe, temos que escrever:
void myExample :: Exemplo :: fun2 ();Como a função fun2 () é o membro do espaço para nome do meu exemplo, e dentro do exemplo da classe, temos que escrever isso:
usando namespace std;Dentro da declaração FUN1 () usamos o cout. É um objeto predefinido, então, sua declaração existe dentro de um espaço para nome chamado std. Este espaço para nome já está definido dentro de um arquivo chamado iostream. Temos que incluir este arquivo dentro do nosso programa.
Exemplo de programação 2:
#incluirSaída:
Explicação:
Uma definição de namespace pode ser continuada e estendida por vários arquivos (1).
arquivo1.hSuponha que tenhamos dois arquivos de cabeçalho chamados file1.h e file2.h . No arquivo1.H, usamos um espaço para nome chamado MyExample. Dentro do MyExample estão duas variáveis x e y e uma função chamada fun1 () é declarada.
No arquivo2.H, usamos outro espaço para nome com o mesmo nome chamado MyExample. Dentro do MyExample estão duas variáveis x e y e uma função chamada fun2 () é declarada.
Se incluirmos esses dois arquivos em nosso programa, podemos ter um equívoco de que existem dois namespace diferentes tendo o mesmo nome que existe. Nome conflito pode ocorrer. Na verdade, apenas um espaço para nome do meu exemplo existe no programa. Nesse mesmo namespace, todas as variáveis x, y, u, v e fun1 (), fun2 () são adicionadas. Dois namespace diferente não podem existir aqui.
Conclusão:
Discutindo em detalhes sobre o espaço para nome, chegamos a essa conclusão de que o namespace nos fornece um recurso exclusivo em nosso programa C ++ que é sobre como organizar nossos elementos de declaração, como variáveis, funções, classes de maneira sistemática.
Fonte:
(1) estudo de estudo.com. N.p., Rede. 12 de abril. 2022. https: // www.estudo de estudo.com/cpp/namespace-in-cpp.php