Considere um par de dois arquivos de origem: um arquivo de declaração de interface ( *.h
ou *.hpp
) e seu arquivo de implementação ( *.cpp
).
Deixe o *.h
arquivo ser assim:
namespace MyNamespace {
class MyClass {
public:
int foo();
};
}
Eu vi duas práticas diferentes para usar namespaces em arquivos de origem:
*.cpp
mostrando a prática nº 1:
#include "MyClass.h"
using namespace MyNamespace;
int MyClass::foo() { ... }
*.cpp
mostrando a prática 2:
#include "MyClass.h"
namespace MyNamespace {
int MyClass::foo() { ... }
}
Minha pergunta: há alguma diferença entre essas duas práticas e uma é considerada melhor do que a outra?
int MyNamespace::MyClass::foo() ...
.