Usando um namespace duas vezes
-
05-07-2019 - |
Pergunta
Em c ++ É OK para incluir mesmo espaço duas vezes? compilador não vai dar qualquer erro, mas ainda vai afetar de qualquer maneira
Obrigado,
EDIT:
Eu quis dizer
using namespace std;
// . . STUFF
using namespace std;
Solução
Depende do que você quer dizer com 'include'. Dizendo:
using namespace std;
...
using namespace std:
é OK. Mas dizendo:
namespace X {
...
namespace X {
criaria um namespace aninhado chamado X :: X, o que provavelmente não é o que você queria.
Outras dicas
Este uso é bom, se é que o seu falar:
arquivo: foo.h
namespace tools
{
class Widget
{
...
};
}
arquivo: bar.h
namespace tools
{
class Gizmo
{
...
};
}
Duas vezes na mesma classe / arquivo? Não deve ser um problema, mas também não deve ser necessário. Eu ingenuamente supor que você deve ser capaz de refatorar seu código para evitar o problema.
Você está perguntando se segue é ok?
using namespace std;
using namespace std;
Não há problema, mas normalmente eu prefiro remeter o elemento namespace com resolução de escopo.
ex:
std::vector
std::sort
Eu não sou inteiramente certo o que você quer dizer. Você pode colocar várias classes em um único namespace (que é a idéia). Cada classe geralmente tem o seu arquivos próprios, então sim, você pode usar o mesmo espaço de nomes em vários arquivos.
Apesar de não ser tecnicamente necessário, é uma boa idéia ter uma estrutura de diretório que representa a hierarquia namespace que você criar.
Quanto ao usando directiva:. O compilador e / ou intellisense provavelmente lhe dá um aviso (o C # se faz), mas por outro lado não há nenhum efeito