【发布时间】:2012-06-04 16:57:48
【问题描述】:
考虑一对两个源文件:一个接口声明文件(*.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() { ... }
}
我的问题:这两种做法之间有什么区别吗?一种被认为比另一种更好吗?
【问题讨论】:
-
还有选项 3:只有我们全名,例如
int MyNamespace::MyClass::foo() .... -
@Dave 不重复。这些问题相辅相成。建议将 Dave 提供的链接添加为“Read also ...”到这个问题。我的问题会帮助新手选择正确的风格。
标签: c++ namespaces header-files