什么是“使用命名空间标准”的使用?
什么是using namespace std
的using namespace std
?
我想在外行看到解释。
- 使用 :你将要使用它
- 命名空间 :使用什么? 一个命名空间
- std :
std
命名空间(声明了C ++标准库的特性,如string
或vector
)。
在你编写这个指令后,如果编译器看到string
,就会知道你可能指的是std::string
,如果它看到了vector
,它就知道你可能指的是std::vector
。 (当然,如果你已经在你的编译单元中包含了它们被定义的头文件)。
如果你不写它,当编译器看到string
或vector
它不会知道你在引用什么。 你将需要明确地告诉它std::string
或std::vector
,如果你不这样做,你会得到一个编译错误。
当你using namespace <some_namespace>;
进行调用时using namespace <some_namespace>;
该名称空间中的所有符号将变为可见而不添加名称空间前缀。 符号可以是例如函数,类或variables。
例如,如果你添加using namespace std;
当调用命名空间std
定义的operator cout
时,您可以只写cout
而不是std::cout
。
这样做有点危险,因为命名空间是用来避免名称冲突的,而且通过using namespace
来编写代码,但却忽略了这个优点。 一个更好的select是只使用特定的符号,从而使它们没有命名空间前缀可见。 例如:
#include <iostream> using std::cout; int main() { cout << "Hello world!"; return 0; }