O que é um espaço para nome ? Por que escrever usando namespace std;
Este é um mecanismo recentemente introduzido em C++, principalmente para resolver o problema de conflitos de nomenclatura entre vários módulos, assim como duas pessoas com o mesmo nome na vida real. C++ coloca os mesmos nomes em espaços diferentes para evitar conflitos de nomes.
Por exemplo, os objetos fornecidos pela biblioteca C++ padrão são armazenados no namespace padrão std, como cin, cout e endl, então veremos a frase usando namespace std em programas C++, como o programa:
#include<iostream>usingnamespacestd;intmain(){cout<<Nicetomeetyou!<<endl;return0;}
Caso o programa utilize cout e endl, deve ser informado previamente para utilizar o namespace std. Além disso, existem outras duas formas de escrita.
O segundo tipo: Use qualificador de domínio:: para especificar um por um. O código agora também pode ser escrito como:
#include<iostream>intmain(){std::cout<<Nicetomeetyou!<<std::endl;return0;}
Você viu isso? cout e endl são especificados respectivamente com std::, indicando que eles vêm de std.
O terceiro método: use os qualificadores using e domain para especificar quais nomes usar, como código:
#include<iostream>usingstd::cout;usingstd::endl;intmain(){cout<<Nicetomeetyou!<<endl;return0;}
Você viu isso? Você também pode usar using para declarar o nome específico primeiro.
Você pode usar qualquer um dos três métodos acima. Por uma questão de unificação e conveniência no futuro, adotaremos o primeiro método de escrita em nossos tutoriais.
Vale ressaltar que, na verdade, o padrão C++ inicial não possuía o conceito de namespace, e o arquivo de cabeçalho incluído era o mesmo do C, com o sufixo .h. Acontece que ao usar um arquivo de cabeçalho sem .h para incluir no novo padrão, o namespace deve ser declarado, e o arquivo de cabeçalho incluído vem primeiro, e o namespace usado é declarado por último.