我是K,我致力于网络安全。
在之前,我们已经讲了C++的一些基础的知识,也给大家讲解了几个比较基本的例子。今天我们就来讲解一下C++的程序构成和书写形式。
在之前博客中,我们也给大家举了一些例子,大家也已经初步了解了C++程序的结构和书写格式,现在再进行归纳。
1.
一个C++程序可以由一个程序单元或多个程序单元构成。每一个程序单元作为一个文件。在程序编译时,编译系统分别对各个文件进行比编译,因此,一个文件是一个编译单位。在之前的博客中介绍的是比较简单的程序,都是只由一个程序单位(即一个文件构成的)。
2.
在一个程序单位中,可以包括以下3个部分
(1)预处理指令。在之前的博客中的程序中都包括了#include指令。
(2)全局声明部分。(在函数外的声明部分)。在这部分中包括对用户自己定义的数据类型的声明和程序中所用到的变量的定义。上一篇博客中有关“类”的例子中就包括了对类“Student”的声明和对变量stud1,stud2的定义。也可以包括对函数的声明,如之前的例子中在main函数中对max函数的声明。
(3)函数。函数是实现操作的部分,因此函数是程序中必须有的和最基本的组成部分。每一个程序必须包含一个或多个函数,其中必须有一个(而且也只能有一个)主函数(main函数)。
但是这并不要求每一个程序文件都必须全部具有以上3个部分,可以缺少某些部分(包括函数)。也就是说,有的程序文件可以不包括函数,而只包括预处理命令和(或)声明部分。完全根据需要而定。这一点在以后的学习中会逐步体会到的。
3.
一个函数由两部分组成。
(1)函数首部。即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。
例如,之前的例子中的max函数
int | max | ( | int | x | , | int | y | ) |
函数类型 | 函数名 | 函数型参类型 | 函数形参名 | 函数形参类型 | 函数形参名 |
一个函数名后面必须跟着一对圆括号,函数参数可以缺省,如int,main()。
(2)函数体,即函数首部下面的大括号内的部分。如果在一个函数中有多个大括号,则最外层的一对{ }为函数体的范围。
函数体一般包括:
2.1 局部声明部分(在函数内的声明部分)。包括对本函数中所用到的类型、函数的声明和变量的定义。如之前例子中main函数中的“int a,b,sum;”以及对所调用的函数声明“int max(int x,int y);”。
对数据的声明既可以放在函数之外(其作用范围是全局的),也可以放在函数内(其作用范围是局部的,只在本函数内有效),这些在以后会介绍的。
2.2 执行部分。由若干个执行语句组成,用来进行有关的操作,以实现函数的功能。
当然,在某些情况下也可以没有声明部分。甚至可以既无声明部分,也无执行部分。如:
void dump(){}
是一个空函数,什么也不做,但它是合法的。
4.语句包括两类。一类是声明语句,如“int a,b,;”用来向编译系统通知某些信息(如类型、函数和变量的声明或定义),但它并不引起实际的操作,是非执行语句。另一类是执行语句,用来实现用户指定的操作。C++对每一种语句赋予一种特定的功能。语句是实现操作的基本成分,显然,没有语句得函数是没有意义的。C++语句必须以分号结束,如“a+b=c;”,分号是语句的一个组成部分,没有分号的就不是语句。
5. 一个C++函数总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序文件的最前头,也可以放在程序文件的最后,或在一些函数之前,在另一些函数之后)。
6. 类(class)是C++新增加的重要的数据类型,是C++对C的最重要的发展。有了类,就可以实现面向对象程序设计方法中的封装、信息隐蔽、继承、派生、多态等功能。在一个类中可以包含数据成员和成员函数,它们可以被指定为私有的(private)和公用的(pubilc)属性。私有的数据成员和数据函数只能被本类成员函数所调用。
7. C++程序书写格式自由。,一行内可以写几个语句,一个语句可以分写在多行上。一般情况下,提倡一行写一个语句,以使程序清晰。
8. 一个好的,有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。在之前的例子中用“//”作为注释行的标志,在一行中从“//”开始到本行末的内容全部作为注释。注释是给人看的,而不是给机器看的,在程序编译和运行时不起作用。C++还保留了C语言的注释形式,可以用“/*......*/”对C++程序中的任何部分作注释。在“/*”和“*/”之间的全部内容作为注释。以下两行注释的作用相同:
//This is a C++ program.
/* This is a C++ program. */
但是,用“//”作注释时,有效范围只有一行,即本行有效,不能跨行。如果注释的内容较多,需要用多个注释行,每行用一个“//”开头。而用“/*......*/”作注释有效范围为多行。只要在开始处有一个“/*”,在最后一行有一个结束处有一个“*/”即可。因此,内容较少的简单注释通常用“//”,内容较长的可以用“/*......*/”。
King