初學者學習C 使用using namespace std 有什麼問題嗎?

時間 2021-06-03 19:03:07

1樓:Jon Lee

能幫你省幾個字而已,寫全名 std::cout 更清晰。最主要原因是,using 的 namespace和當前namespace有同名字的函式時,當前namespace就被汙染了。

1. 不要在全域性使用。特別是標頭檔案全域性,否則每個引用該標頭檔案的變異單元的namespace都被汙染了:完全違背了namespace存在的意圖。

2. 一般情況下,在函式內使用,該using作用域只在該函式內:這樣是可以的。但是函式太長時,讀者會疑惑。

所以還是寫全名吧,不缺那幾秒多打幾個字哈。

2樓:Khellendros

using namespace是在當前作用域引入乙個命名空間中所有的名稱。c++標準庫中的名稱大部分都定義在std命名空間。

在全域性作用域(可以簡單的理解為不被任何花括號包括的地方)使用using namespace是個糟糕的習慣,在大型專案中往往容易造成命名空間汙染。試想一下,圖書館裡員把書籍分門別類的收藏在書架上,某天來了個什麼都不懂的新人,把所有的書一股腦全倒在了乙個大紙箱裡,其中有一些書還是同名不同類的……

即使不引入std命名空間,只要顯示的指出名稱所屬的命名空間,或者使用using宣告,也是可以使用命名空間中的名稱的。

例如:using namespace std;

cout<<「…」<

等價於:

std::cout<<「…」<

using std::endl;//只引入部分名稱cout<<「…」<

3樓:江戶川哀

using宣告表示引入命名空間的乙個成員。這裡的輸出庫函式cout屬於命名空間std,因此必須在開頭用using namespace std才能使用cout,否則,每次使用庫函式都必須加對應的命名空間,如std::cout。

新手建議先看看《c++ primer》,這些問題書上都有詳細解釋。

2023年初學者如何學習C

WangKX C 新經典 C 新經典 物件模型 這兩本書2020年8月已經出版了,千萬不要錯過了,不要再捧著其他書看了,已經過時了。 學徒 對於初學者,建議先擼一遍C primer。如果沒有基礎的話擼一遍可能會比較痛苦,但是收穫也會非常大的。另外,語言只是工具,更重要的是解決問題的能力。初級可以刷刷...

初學者如何學習易經?

Fiona 易經到底怎麼學才能學懂和更容易學呢?我建議就從規律入手,放棄那些看起來神秘的術語。觀察 了解規律,然後順應規律,就是易經的精髓。神秘的術語讓人望而卻步,而且增加了學習的難度。多觀察再下結論,規律是觀察出來的。包括我們說的性格色彩學,如果不對人進行長期的觀察,又怎麼總結出規律來呢?無論學什...

C 初學者如何實現就業?

濤哥 打鐵還需自身硬,如果想找c 的工作,建議努力掌握c 剛開始接觸C 時,如果是學校開了C 課程的話那就好了,可以跟著老師的進度學習,在課餘時間可以多做一些習題或上機練習。基礎打好,走校招不難。如果你是完全自學,你可以找一本面向大學生的教材或者經典教材比如C Primer中文版。掌握了一些基本的C...