C++ 都需要包含的头文件#include<iostream>
,即输入输出流。C++中的头文件都没有 .h 后缀,包含了 .h 后缀的头文件是兼容C语言的头文件。主函数与C语言写法相同,控制台输出采用更强大的cout
,cout
可以实现各种类型变量的输出,整型,字符型,字符串等等,而且可以实现连续输出。我们知道,C语言中的控制台输出常用printf()
函数,那么cout
到底是什么?是函数?
在频繁使用cout
前还是应该正确认识一下它,cout
其实是一个对象,是iostream类下的一个对象,<<
其实是cout
的一个成员函数。可以通过尝试发现,如果去掉using namespace std;
这一行代码,cout
处就会报错。
1 |
|
原因在于,iostream类是命名空间 std 下的类。命名空间也是C++比C语言有优势的一个地方,在C语言的一个项目中,不同文件下的函数名,全局变量名称等都是不允许重复的,由于项目的体量可能太大,很容易总成命名冲突。在C++中,就可以有效的解决这个问题,借助命名空间,在不同的命名空间下的函数,变量是可以重名的。创建一个自己的命名空间只需在自己写的代码外层加上一个namespcae WGX
如
1 |
|
在另一个文件中
1 |
|
在其他文件中,想要调用WGX命名空间下的print()函数,就需要加上一行using namespace WGX
代码。
1 |
|
即使这样,也会带来一定的问题,如果上面的代码块中的注释没有被注释掉,就会报错。原因是两个不同的命名空间下有相同名称的函数,这时需要用命名空间加作用域符号::
来显式的说明print()
是哪个命名空间下的函数。当显式的指出命名空间时,也就可以省略了using namespace xxx
这行代码了,可以更有效的避免出错。
1 |
|
还有下面一种情况,文件中存在一个全局的函数print()
,同时又引入了命名空间WGX,这是该如何调用全局的函数呢?
1 |
|
下面介绍cin
和endl
。cin
是输入函数,功能类似于scanf(),
1 | int n=0; |
输出n
1 | std::cout<<n<<endl; |
endl
直观感受就是换行,类似于\n
,但是 char a=endl
代码却不能通过编译。关于endl
,目前只需要记住它的作用即可,清空缓冲区并换行。
2020-05-13 22:28:35 星期三