天天看点

后台开发:核心技术与应用实践1.1 第一个C++程序

<b>第1章</b>

c++编程常用技术

我们通过固定格式和固定词汇的“语言”来影响他人,让他人为我们做事情。语言有很多种,包括汉语、英语、法语、韩语等,虽然它们的词汇和格式都不一样,但是可以达到同样的目的,我们可以选择任意一种语言去与他人交流。同样,我们也可以通过“语言”来影响计算机,让计算机为我们做事情,这样的语言就叫作编程语言。

c语言是1972年由美国贝尔实验室的d.m.ritchie设计成功的,它是为计算机专业人员设计的,大多数系统软件和许多应用软件都是用c语言编写的。但是随着软件规模的增大,用c语言编写程序渐渐显得有些吃力了。c++也是由美国贝尔实验室的bjarne stroustrup博士及其同事于20世纪80年代初在c语言的基础上开发成功的。c++保留了c语言原有的所有优点,与c语言兼容,并且增加了面向对象的机制。用c语言写的程序基本上可以不加修改地用于c++开发工具。从c++的名字可以看出它是c的超集。c++既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型程序设计语言。

本章主要讲述c++中的常用技术,让读者可迅速地、由浅入深地熟悉这门语言。

1.1 第一个c++程序

刚开始接触一门编程语言,一般会从写一个输出hello world的程序开始。

【例1.1】 用程序输出hello world。

#include&lt;iostream&gt;

using namespace

std;

int main()

{

     cout&lt;&lt;"hello

world."&lt;&lt;endl;

     return 0;

}

把上述程序编写在一个叫helloworld.cpp的文件中,并将它放到linux机器上的某个目录下,执行g++

helloworld.cpp命令,会在该目录下生成a.out文件。执行./a.out命令,即可得到输出结果:hello world.。

先看程序的第一行(#include&lt;iostream&gt;),这不是一个c++语句,是一个预处理语句,编译器的预处理器把输入输出流的标准头文件包括在本程序中,所以不需要在句末加分号(;)。include一个文件,就是把这个文件的所有内容都加进来。图1-1展示了包含文件的过程。

如图1-1所示,include一个.h文件,就是等于把整个.h文件给复制到程序中,include一个.cpp文件也是如此。

除了#include&lt; &gt;的方式来包含一个头文件,还会见到#include" "的方式来包含一个头文件。而#include&lt; &gt;与#include" "的区别是:#include&lt; &gt;常用来包含系统提供的头文件,编译器会到保存系统标准头文件的位置查找头文件;而#include" "常用于包括程序员自己编号的头文件,用这种格式时,编译器先查找当前目录是否有指定名称的头文件,然后从标准头目录中进行查找。

还经常会看到#include&lt;iostream&gt;和#include&lt;iostream.h&gt;的使用。事实上,#include&lt;iostream&gt;和#include&lt;iostream.h&gt;是不一样的,因为iostream和iostream.h是两个不同的文件,前者没有后缀。实际上,在你的编译器include文件夹里面可以看到,两个文件打开后,里面的代码是不一样的。后缀为.h的头文件在c++标准已经明确提出不再支持了,早些的c语言为了实现将标准库功能定义在全局空间里,声明放在在带.h后缀的头文件里。c++标准为了和c语言区别开,也为了正确使用命名空间,规定头文件不再使用后缀.h。因此,当使用&lt;iostream.h&gt;时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现方法。换句话说,iostream是iostream.h的升级版,大部分的头文件都有一个不带.h扩展名的文件与之相对应。不过有个特例,&lt;string&gt;并非&lt;string.h&gt;的升级版。

再看程序的第二行:“using namespace std;”中使用了命名空间std。命名空间是为了让大量类名共存而不至于引起冲突而设计的。c++标准函数库的所有元素都被声明在一个命名空间中,这就是std命名空间。为了能够访问它的功能,使用这条语句来表达将使用标准名空间中定义的元素。这条语句在使用标准函数库的c++程序中频繁出现,本书中大部分例子的代码中也将用到它,需要注意的是,最好不要在头文件中使用命名空间,否则容易造成命名冲突。

继续看程序的第三行:“int main()”,这是主函数(main function)的起始声明。主函数是所有c++程序的运行的起始点。不管它是在代码的开头、结尾还是中间,此函数中的代码总是在程序开始运行时第一个被执行。main后面跟了一对圆括号(),表示它是一个函数。c++中所有函数都跟有一对圆括号(),括号中可以有一些输入参数。如例1.1中显示,主函数(main function)的内容紧跟在它的声明之后,由花括号{}括起来。

程序的第四行:“cout&lt;&lt;"hello world."&lt;&lt;endl;”是本程序中最重要。cout是c++中的标准输出流(通常为控制台,即屏幕),这句话把一串字符串(本例中为hello world)插入到输出流中。cout在的声明在头文件iostream中,所以要想使用cout必须将该头文件包括在程序开始处。注意这个句子以分号结尾。分号标示了一个语句的结束,c++的每一个语句都必须以分号结尾。c++程序员最常犯的错误之一就是忘记在语句末尾写上分号。

最后一行(return 0;)中返回语句(return)标志主函数main()执行结束,并将该语句后面所跟代码(在本例中为0)返回。这是在程序执行没有出现任何错误的情况下最常见的程序结束方式。在后面的例子中会看到所有c++程序都以类似的语句结束。

继续阅读