考虑一对两个源文件:接口声明文件(*.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() { ... }
}
我的问题:这两种做法之间有什么区别吗?一种被认为比另一种更好吗?