天天看點

namespace的用法和作用

轉載:http://topic.csdn.net/t/20051020/11/4338811.html#

在大型軟體開發項目中,類型和函數名沖突是常有的事,如:定義專用類型時就常常不隻一次地使用相同的名字。為了避免這個問題。人們通常在代碼中使用不同的詞綴,由此造成代碼很難管理、使用、閱讀和編輯。碰到這種問題常常使人郁悶非常而且容易出錯。看看下面的代碼:  

  class   string   {    

                    //這個類名雖然短小精幹,意思表達明确,但是它已經被别人使用,你不能再用它作為類名了!    

        //...  

  };  

  class   CMYExclusive_string   {    

                      //   這倒是個較安全的名字,但是太冗長乏味。不斷重複這樣的名字會影響自己的心情。               //   況且這樣處理還是有名字沖突的可能  

        //...  

  }  

  為了較好地解決這個問題,C++   提供了規定名字空間的手段,也就是用   namespaces   關鍵字。有了它,在自己代碼中規範地命名類型和函數的自由度就大多了,有了它,你就可以充分使類型和函數的命名簡潔、易于了解、使用友善和安全。進而擺脫了哪些在定義和聲明中冗長乏味的詞綴。你可以在名字空間中對類型或者函數進行分類,為類型和函數的使用系上安全帶,例如:    

  //   某個頭檔案   vckbaseExcelSoft.h  

  namespace   vckbaseFSDUexcelSoft_   {  

        class   string   {  

                    //...  

                    };  

        class   vector   {  

                    //...  

                    };  

        //...etc.  

  }  

  接着可以象下面這樣存取類型資料:  

  #include   "vckbaseExcelSoft.h"  

  void   main()   {  

          using   namespace   vckbaseFSDUexcelSoft_;    

          string   s;   //   引用   名字空間   vckbaseFSDUexcelSoft_裡的   string   vckbaseFSDUexcelSoft_::string  

          //   下面又回到标準的   string    

          std::string   mySTDstr;    

  }