Mais
Por que "usando o namespace std;" considerado má prática?
I'foi dito por outros que escrever use namespace std;
em código está errado, e que eu deveria utilizar std::cout
e std::cin
diretamente em seu lugar.
Porque é que "usar namespace std" é considerado uma má prática? É ineficiente ou corre o risco de declarar variáveis ambíguas (variáveis que compartilham o mesmo nome de uma função no espaço de nomes `std')? Isso afeta o desempenho?
2466
3
Isto não está de todo relacionado com o desempenho. Mas considere o seguinte: você está usando duas bibliotecas chamadas Foo e Bar:
Tudo funciona bem, e você pode chamar
Blah()
de Foo eQuux()
de Bar sem problemas. Mas um dia você atualiza para uma nova versão do Foo 2.0, que agora oferece uma função chamadaQuux()
. Agora você tem um conflito: Ambos Foo 2.0 e Bar importamQuux()
para o seu namespace global. Isto vai exigir algum esforço para corrigir, especialmente se os parâmetros da função coincidirem.Se você tivesse utilizado
foo::Blah()
ebar::Quux()
, então a introdução defoo::Quux()
teria sido um não-evento.Outra razão é a surpresa.
Se eu vejo `cout
É tudo uma questão de gerir a complexidade. Usar o namespace vai puxar coisas que você não quer, e assim possivelmente tornar mais difícil a depuração (eu digo possivelmente). Usando std::: em todo lugar é mais difícil de ler (mais texto e tudo mais).
Cavalos para cursos - administre a sua complexidade da melhor forma que você pode e se sente capaz.