在我們所有的C++課程中,所有教師總是在其.h
文件的#include
之後立即放置using namespace std;
。這在我看來是危險的,因爲通過在另一個程序中包含該頭文件,我會將名稱空間導入到我的程序中,也許沒有意識到,打算或想要它(頭文件包含可以非常深入地嵌套)。「在C++頭文件中使用命名空間」
所以我的問題是雙重:我是正確的,using namespace
不應該在頭文件使用,並且/或者是有一些辦法撤消它,像:
//header.h
using namespace std {
.
.
.
}
一個沿着相同的多個問題行:如果一個頭文件#include
它對應的所有頭文件需要.cpp
文件,那麼只有那些頭文件定義需要的頭文件,並且讓其餘的文件或者其他文件不需要,並且將它需要的所有東西聲明爲extern
?
問題背後的原因與上面相同:包含.h
文件時,我不希望出現意外。
另外,如果我是對的,這是一個常見的錯誤?我的意思是在現實世界的編程和那裏的「真實」項目中。
謝謝。
http://stackoverflow.com/questions/1265039 /使用-STD-命名空間 – 2011-05-01 15:53:12
作爲一個側面說明,如果你的名字的衝突,由於'使用namespace'語句,那麼你可以使用完全合格的名稱來解決這個問題。 – 2011-05-01 16:08:04