盡量不要使用using namespace std


C++標准程序庫中的所有標識符都被定義於一個名為std的namespace中。 

namespace是指標識符的各種可見范圍。命名空間用關鍵字namespace 來定義。命名空間是C++的一種機制,用來把單個標識符下的大量有邏輯聯系的程序實體組合到一起。

此標識符作為此組群的名字。

如果我們使用了using namespace std, 而且我們在自己的程序中定義了一個函數toupper(),這將重寫標准庫中的toupper()函 數,這是因為這兩個函數都是位於全局命名空間中的。

那么我們的minm

少在頭文件中使用using namespace std,因為你的頭文件可能被別人的cpp包含,那么這些cpp也默認就using namespace std了。這樣的話可能會造成問題,例如在c++11和boost中都有shared_ptr,不指定namaspace或者using了兩個namespace可能會造成混淆問題。
 
一般說來, 使用using命令使用using編譯命令安全,這是由於它 只導入了制定的名稱。如果該名稱與局部名稱發生沖突,編譯器 將發出指示。using編譯命令導入所有的名稱,包括可能並不需要的名稱。如果與局部名稱發生沖突,則 局部名稱將覆蓋名稱空間版本,而編譯器 並不會發出警告。另外,名稱空間的開放性意味着名稱空間的名稱可能分散在多個地方,這使得難以准確知道添加了哪些名稱。


using命令:using std::cout;
using編譯命令:using namespace std;

不要在頭文件使用using namespace std;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM