C 在C 中什麼時候需要加上std

2021-06-20 13:30:53 字數 903 閱讀 7392

那是命名空間,你所用到的很多函式或者類都是被放到命名空間裡面的,命名空間是防止名字重複而使用的,比如stl有個類叫string,而你也設計乙個類叫string,那麼

編譯器編譯的時候就搞不清楚到底是那個string,所以用乙個命名空間就比較方便了。具體是這麼回事的,比如有兩個班級,a班和b班,兩個班各有乙個叫張三的人,而兩個班的同學相互之間都是非常熟悉的。那麼他們聊天的時候說張三,那其他人肯定會問,哪個張三?對吧,因為搞不清楚到底說的是哪個,所以會犯迷糊。而這個時候,那個人會補充,a班的張三或者b班的張三,這樣,其他人就知道

到底是誰

了。這裡的a班,b班就好像命名空間一樣,而張三就好像那個string,或者說是物件,變數或者函式。

當你自己定義乙個string並把它放到命名空間aaa中的時候,你使用string只要指定是哪個命名空間的,就不會導致編譯器分不清是哪個string了。你使用時會用std::string或者aaa::string,前者告訴編譯器我用的string是在命名空間std裡面的,後者告訴編譯器用的string是在命名空間aaa裡面的。這樣,編譯器就一目了然,不會出錯。但是你卻發現每次只要用到string都必須在前面加上aaa,這樣相當麻煩,有沒有辦法簡化操作呢?當然有,就好像上面的例子,那些人聊天之前,他可以告訴其他人說,注意,下面說到張三都是說的b班的,那麼其他人就知道,後面只要出現張三都是在說b班的,不是a班的了。很多文章裡面也有這樣的情況啊,一般註明是以下簡稱什麼什麼的,就是為了避免重複,導致混淆。而程式一樣的,你可以先告訴編譯器你用的string是哪個命名空間的。就要用到這句了。using namespace std;這樣告訴編譯器,我沒有指定命名空間的,就預設使用std這個命名空間,那麼你使用string就不用再加std::作用域了。只需要直接寫string就可以了,編譯器就知道你說的是哪個string了。這就是命名空間的作用。希望你能明白,祝學習進步~!

引自:

c 什麼時候用 std

文章寫的很透徹,想儲存下來供以後檢視方便 std 是命名空間,你所用到的很多函式或者類都是被放到命名空間裡面的,命名空間是防止名字重複而使用的,比如stl有個類叫string,而你也設計乙個類叫string,那麼編譯器編譯的時候就搞不清楚到底是那個string,所以用乙個命名空間就比較方便了。具體是...

在c 中, 什麼時候用 什麼時候用

在某種意義上,和 是意思相對的兩個東西,把它們放在一起有什麼意義呢?為了理解指標的這種做法,我們先複習一下c c 程式設計中無所不在的指標概念。我們都知道myclass 的意思 指向某個物件的指標,此物件的型別為myclass。void func1 myclass pmyclass 例如 mycla...

C 中在什麼時候需要使用「常引用」?

如果既要利用引用提高程式的效率,又要保護傳遞給函式的資料不在函式中被改變,就應使用常引用。常引用宣告方式 const 型別識別符號 引用名 目標變數名 例1 int a const int ra a ra 1 錯誤 a 1 正確例2 string foo void bar string s 那麼下面...