為什麼使用“using namespace std”被認為是不良實踐?
C++ 具有一個標準庫,其包含無處不在的用於構建應用程式的程式,如容器、演算法等。如果實際使用這些名稱,例如,如果在全域性定義一個佇列類,你將永遠無法再使用相同的名稱而不會產生衝突。因此他們建立了一個名稱空間 std 來包含這些更改。
using namespace 語句只是表示,在它所存在的範圍中,使 std 名稱空間下的所有內容都可用,而無需在每個內容之前加上 std:: 字首。
儘管這種做法對於範例程式碼來說是可以的,將整個 std 名稱空間引入全域性名稱空間並不好,因為它違背了名稱空間的宗旨,並且會導致名稱衝突。這種情況被稱為名稱空間汙染。
廣告