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;
Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top