C++命名空間解釋

來源:互聯網
上載者:User

1.命名空間是為瞭解決不同檔案中的同名變數。

比如你加了using namespace std;
那麼std命名空間中定義的東西就不用加std::了。
而iostream.h這個標頭檔是為了相容c,c根本就沒命名空間這個概念,所以不用加using namespace std;了
如果用通俗的方法解釋就是,一個學校,有很多個班,在找1號的同學的時候,到底是找哪個班的1號呢?
using namespace 高一一班;
那麼在找所有高一一班的同學的時候,就不用輸入 高一一班::一號了
也不用寫成
  using 高一一班::一號;
  using 高一一班::二號;

直接寫  一號  就可以了。

注意,很多程式員不會用using namespace std;因為標準命名空間std裡面定義了很多變數,一不小心就會和自己定義的變數重複,於是,可以用到什麼就在前加上:
using std::cin;
using std::cout;
using std::endl;
就可以。

2.團隊合作開發

其實這個還是很有用的,尤其是在團隊合作開發的時候,比如說,你把模組分給大家去做,a寫了個類w,b也寫了個類w,但是由於之前沒有溝通好,最後他們的類名都一樣,整合在一起的時候,調用的時候就回出現衝突。如果用名稱空間,就好辦了,調用的時候,只要說是調用a的類w還是b的類w就解決問題了。
如:namespace a{ class w{...};} 
  namespace b{ class w{...};}
用的時候:
  a::w aw  //產生a寫的w的對象
  aw.get().....
  b::w bw  //產生b寫的w的對象
  bw.get()....
這樣就區分是誰的類了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.