2012-10-13 76 views

回答

8

這意味着,從此代碼中的,當我們鍵入cout我們意指std::cout

它注入在命名空間定義std到當前命名空間中的cout。我們在using namespace std之上使用這個,因爲這更受控制;並不是每一個std名字都會注入這個聲明。

+0

但通常當我鍵入「cout」在一般情況下它工作正常。我從來沒有真正使用std :: cout,這就是爲什麼我想知道。發現了這個有趣的東西,不知道它的目的是什麼 – Masterminder

+0

你之前是否使用過「using namespace std;'?因爲這會做同樣的事情(除了'endl'' swap'和其他東西噸) – jozefg

+0

我總是這樣定義它... '使用命名空間標準;'但我想我現在看到它 – Masterminder

0

這是一個名稱空間聲明。允許您鍵入了cout代替std::cout和一般最好的using namespace std;

0

代替using聲明引入的名稱cout到全局命名空間爲std::cout的代名詞。

0

它與「命名空間」概念有關。爲了避免名稱衝突(變量,類什麼的,它在不同的文件具有相同的名稱),你可以把你的代碼放到一個命名空間爲:

namespace exampleNS 
{ 
    class A { ... } 

    void aFunction (...){ ... } 
} 

當你在裏面的命名空間exampleNS,你可以請參閱A類,只使用名稱,但從外部您需要編寫exampleNS::A

如果您想要保存在名稱之前添加名稱空間的詳細信息(您肯定不會與當前名稱空間內的任何內容相沖突),那麼可以編寫該語句using

大多數標準庫實用程序都在namespace std之內,例如變量coutcin。在你的情況下,你的代碼不在命名空間std中:你可以選擇在每次打印東西時寫入std::cout,或者在開頭寫入using std::cout,然後在代碼中使用它作爲cout

0
using A::B 

A是一個命名空間,意味着B無障礙不需要的前綴,它的衍生物。請注意,這僅與放置它的範圍有關。如果放置在較低級別的作用域中,則該功能在外部作用域中不會有任何影響。