考慮一對兩個源文件:一個接口聲明文件(*.h
或*.hpp
)及其實現文件(*.cpp
)。C++:名稱空間 - 如何在頭文件和源文件中正確使用?
讓*.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()...'。 –
可能的重複:http://stackoverflow.com/questions/7789163/using-directive-best-practice – David
@Dave不重複。這些問題相互補充。建議將Dave提供的鏈接添加爲「另請閱讀...」以解決此問題。我的問題將幫助新手選擇正確的風格。 – DaddyM