Рассмотрим пару из двух исходных файлов: файл объявления интерфейса ( *.h
или *.hpp
) и файл его реализации ( *.cpp
).
Пусть *.h
файл будет таким:
namespace MyNamespace {
class MyClass {
public:
int foo();
};
}
Я видел две разные практики использования пространств имен в исходных файлах:
*.cpp
показываю практику №1:
#include "MyClass.h"
using namespace MyNamespace;
int MyClass::foo() { ... }
*.cpp
показываю практику №2:
#include "MyClass.h"
namespace MyNamespace {
int MyClass::foo() { ... }
}
Мой вопрос: есть ли различия между этими двумя практиками и считается ли одна лучше другой?
int MyNamespace::MyClass::foo() ...
.