【C++基础】系列博客为参考《C++ Primer中文版(第5版)》(C++11标准)一书,自己所做的读书笔记。
本文为原创文章,未经本人允许,禁止转载。转载请注明出处。
1.using
声明
在之前的博客:【C++基础】第二课:C++的输入与输出中,我们已经提过了命名空间的作用和用法。
到目前为止,我们用到的库函数基本上都属于命名空间std
。但是如果我们每次使用标准库中的函数时都需要加上std::
是非常繁琐的一件事情。
因此,为了简化这个过程,可以使用using
声明:
1
using namespace::name;
一旦声明了上述语句,就可以直接访问命名空间中的名字:
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using std::cin;
int main()
{
int i;
cin>>i;//正确
cout<<i;//错误:没有对应的using声明,必须使用完整的名字
std::cout<<i;//正确
return 0;
}
1.1.每个名字都需要独立的using
声明
按照规定,每个using
声明引入命名空间中的一个成员。例如,可以把要用到的标准库中的名字都以using
声明的形式表示出来:
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
cout<<"Enter two numbers:"<<endl;
int v1,v2;
cin>>v1>>v2;
cout<<"The sum of "<<v1<<" and "<<v2<<" is "<<v1+v2<<endl;
return 0;
}
⚠️也可以使用如下代码将标准库中的所有库函数全部包含进来:
1
using namespace std;
1.2.头文件不应包含using
声明
位于头文件的代码一般来说不应该使用using
声明。这是因为头文件的内容会拷贝到所有引用它的文件中去,如果头文件里有某个using
声明,那么每个使用了该头文件的文件就都会有这个声明。对于某些程序来说,由于不经意间包含了一些名字,反而可能产生始料未及的名字冲突。