命名空间(namespace)
-
命名空间可以解决名自定义冲突问题。比如有两个不同的库中实现了一个同名的函数,可以通过加上命名空间进行区分。
-
C++标准库定义的名字在都在
std
命名空间,如cin
,cout
和endl
等都在std
命名空间中。在访问时需要使用以下方式:std::cin
,std::cout
,std::endl
。
可以使用using
声明来简化使用过程。1
2
3
4
5
6
7
8
9
10#include<iostream>
using std::endl;
using std::cin;
int main()
{
int val = 0;
cin >> val;
std::cout << val << std::endl;
return 0;
} -
使用了
using
声明之后,在代码中就无须指出namespace了。 -
每个名字都需要独立的
using
声明。 -
头文件中不应该包含
using
声明,因为头文件的内容会拷贝到所有引用它的文件中,如果头文件里有某个using
声明,那么每个使用了该头文件的文件都会有这个声明。可能会有冲突。
参考文献
1.《C++ Primer第五版》