using namespace [ns]與 using [ns]區別

using namespace [ns]與 using [ns]區別

using namespace [ns] 表示命名空間 [ns] 下所有的域變成可見的。
using namespace std;
則代碼中可以用
cout<<"dddd"<<endl;< div="" style="word-wrap: break-word;">
如果是using [ns]的話,則只有ns是本身是可用的。對於ns下的域仍然必須
使用 ns.xxx 
using std;
則代碼中必須這樣寫
std::cout<<"xxx"<<std::endl;< div="" style="word-wrap: break-word;">
std不可以省略。
這個例子可能不是很恰當,因爲std本身就是根級的命名空間,直接using std沒有
發揮任何作用。
如下例子,應該更能說明問題:

using boost::asio::ip::tcp;
則使用tcp下的命名空間,就簡化很多
    tcp::resolver resolver(io_service);
    tcp::resolver::query query(argv[1], "daytime");
    
  如果使用using namespace的話,應該如下編碼:
  
  using namespace  boost::asio::ip;
 
     tcp::resolver resolver(io_service);
    tcp::resolver::query query(argv[1], "daytime");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章