大家也都知道,作为学习每一门语言最开始的仪式,便是使用改语言显示出”Hello World“的字样,以示自己进入了一个新的程序世界。现在,就是”Hello World“。
helloWorld的代码如下:
//helloC++World.cpp
#include <iostream>
int main()
{
using namespace std;
cout << "Hello" << " " << "World" << endl;
return 0;
}
让我们一行行来看,首先是第一行//helloC++World.cpp
,很明显这是注释,C+中一共有两种注释方法,第一种就是以//
为开始,换行结束,第二种是/*
为开始,*/
结束,第一种方法通常用在每行的末尾,第二种方法通常用于跨越多行的注释。
然后是第二行,#include <iostream>
,与C语言不同的是,C++的预编译指令中的文件并没有后缀名,这是标准的,具有C++特色的头文件,内含一个命名空间(即为下面的namespace
)。就我现在的理解,应该和JAVA的包的概念有一定的类似,等到以后再做深入学习。
接下来第三行,int main()
,这是C++的main函数的标准,其用意为返回一个int值,从而可被其他的程序所调用,并返回一定得运行状态等,如果继续沿用老版C语言的void main(void)
,在某些编译器上会报错,应该注意。与int main()
对应的就是代码尾端的return 0
,这里不多做介绍。
第四行以后再做学习,现在只需要知道cout
,endl
均被定义在命名空间,以及最上预编译的文件iostream
中。
第五行cout << "Hello" << " " << "World" << endl;
给我的感觉很像java的System.out.print()
函数,但是还是有一些不同的。比如说如果定义一个字符串string s = "123"
,然后在C++中输出,我们将会得到如下错误信息:没有与这些操作数匹配的<<
运算符,现在推测大概是因为cout的实现方式与java不同。
其次还有一个点需要注意,那就是符号的重载,在这一语句中很明显将<<
左移运算符重载,其次,编译器可以根据上下文来确定这些运算符的用法,并正确的调用它们。
最后,即endl
,该符号为换行符,与\n
意义相同,平时使用可以根据自己爱好来使用。
helloWorld代码的学习到此为止,同时有以下几个问题留待以后解决:
- 命名空间的具体意义以及使用
- cout的实现
- 运算符的重载