![](/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.