![](/img/trans.png)
[英]For using a standard library function in C++, what exactly is the relationship between its header file and std namespace?
[英]Is 'using namespace std;' a standard C++ function?
正在using namespace std;
標准的C ++函數?
不,這就是所謂的using directive
。 我在標准中的§7.3.4中概述了:
using-directive指定指定命名空間中的名稱可以在using-directive出現在using-directive之后的范圍內使用。 在非限定名稱查找(3.4.1)期間,名稱看起來好像是在最近的封閉命名空間中聲明的,其中包含using-directive和指定的命名空間。
從本質上講,它會將您指定的命名空間中的所有內容轉移到使用該指令的命名空間中。
它不是一個功能。
在下面的
using namespace std;
關鍵字using
用作引入整個命名空間的指令(在本例中為std
)。
注意 :始終更喜歡using
聲明而不是using
指令
沒有函數是C ++語言的一部分; 它是你寫的東西或者已經寫成庫並且可供你使用的東西(比如標准C ++庫)。 這些庫將函數和變量放在稱為命名空間的隔離內。 要在命名空間內調用函數,請遵循語法namespace::function_name()
語法。
例如std::cout << "Hi!";
雖然您始終使用函數名稱后跟括號內部調用函數,但您可以將參數傳遞給函數(如果有)。 像function_name(args);
。 所以你問過的問題: 不,這不是一個功能。
using namespace std
是一個指令 (你可以把它看作是編譯器的一個聲明,說明std命名空間里面的東西可以在沒有任何限定符的情況下使用,直到這個編譯單元的末尾(.cpp +頭部關聯),即
std::cout << "Hello!";
可以用作cout << "Hello!";
從那以后。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.