命名空间
566 字
3 分钟
命名空间
命名空间的using声明
目前为止,我们用到的库函数基本上都属于命名空间std,而程序也显式地将这一点标示了出来。
例如,std::cin表示从标准输入中读取内容。此处使用作用域操作符(::)的含义是:编译器应从操作符左侧名字所示的作用域中寻找右侧那个名字。
因此,std::cin的意思就是要使用命名空间std中的名字cin。
上面的方法显得比较烦琐,然而幸运的是,通过更简单的途径也能使用到命名空间中的成员。
本节将学习其中一种简单的方法,使用using声明(using declaration),有了using声明就无须专门的前缀(形如命名空间::)也能使用所需的名字了。using声明具有如下的形式:
using namespace::name;一旦声明了上述语句,就可以直接访问命名空间中的名字:
using std::cin;int main() { int i ; //正确,cin和std::cin含义相同 cin >> i; //错误,没有对应的using声明,必须使用完整的名字 //cout << i; //正确,显示地从std中使用cout std::cout << i; return 0;}每个名字都需要独立的using声明
按照规定,每个using声明引入命名空间中的一个成员。例如,可以把要用到的标准库中的名字都以using声明的形式表示出来,程序如下:
using std::cin;using std::endl;int main() { int i ; //正确,cin和std::cin含义相同 cin >> i; //错误,没有对应的using声明,必须使用完整的名字 //cout << i; //正确,显示地从std中使用cout std::cout << i << endl; return 0;}头文件不应包含using声明
位于头文件的代码一般来说不应该使用using声明。这是因为头文件的内容会拷贝到所有引用它的文件中去,如果头文件里有某个using声明,那么每个使用了该头文件的文件就都会有这个声明。对于某些程序来说,由于不经意间包含了一些名字,反而可能产生始料未及的名字冲突。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章智能推荐
1
命名空间
C++2026-05-16
2
作用域和储存空间
C++2026-05-03
3
stream流
C++2026-06-01
4
单例模式
C++2026-05-31
5
万能引用和原样转发
C++2026-05-30
随机文章随机推荐







