“Usando espaço para nome” nos cabeçalhos c ++
Em todos os nossos cursos de c ++, todos os professores sempre colocamusing namespace std;
logo após o#include
s em seus.h
arquivos. Parece-me perigoso desde então, ao incluir esse cabeçalho em outro programa, o namespace será importado para o meu programa, talvez sem perceber, pretender ou querer (a inclusão do cabeçalho pode ser profundamente aninhada
Então minha pergunta é dupla: Estou certo queusing namespace
não deve ser usado em arquivos de cabeçalho e / ou existe alguma maneira de desfazê-lo, algo como:
//header.h
using namespace std {
.
.
.
}
Mais uma pergunta na mesma linha: um arquivo de cabeçalho#include
todos os cabeçalhos correspondentes.cpp
precisa, apenas aqueles necessários para as definições de cabeçalho e permite que o.cpp
Arquivo#include
o resto ou nenhum e declare tudo o que precisa comoextern
?
O raciocínio por trás da pergunta é o mesmo que acima: não quero surpresas ao incluir.h
arquivos
Also, se eu estiver certo, isso é um erro comum? Quero dizer, na programação do mundo real e em projetos "reais" por a
Obrigado