Рассмотрим пару двух исходных файлов: файл декларации интерфейса (*.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() { ... }
}
Мой вопрос: Есть ли какие-то различия между этими двумя практиками и считается лучше других?