“使用命名空间标准”有什么用处?
这个问题在这里已经有了答案:
std
命名空间(声明了C ++标准库的特性,例如string
或vector
)。 在你编写这条指令后,如果编译器看到string
它就会知道你可能指的是std::string
,如果它看到了vector
,它会知道你可能指的是std::vector
。 (当然,您已经在编译单元中包含了定义它们的头文件。)
如果你不写它,当编译器看到string
或vector
它不会知道你在引用什么。 你将需要明确地告诉它std::string
或std::vector
,如果你不这样做,你会得到一个编译错误。
当您using namespace <some_namespace>;
进行调用时using namespace <some_namespace>;
该名称空间中的所有符号将变为可见而不添加名称空间前缀。 符号可以是例如函数,类或变量。
例如,如果你添加using namespace std;
当调用命名空间std
定义的operator cout
时,您可以只写cout
而不是std::cout
。
这是有点危险的,因为命名空间是为了避免名称冲突,并且using namespace
编写代码,但是放弃了这个优点。 一个更好的选择是只使用特定的符号,从而使它们在没有命名空间前缀的情况下可见。 例如:
#include <iostream>
using std::cout;
int main() {
cout << "Hello world!";
return 0;
}
链接地址: http://www.djcxy.com/p/29775.html