1.1 C++语言简介
- C++是C的扩展,C是C++的子集,C++包括C的全部特征、属性和优点。同时,增加了对面向对象编程的支持。
- 与C一致,C++程序结构采用函数驱动机制实现。
- C++实现了类的封装,数据隐藏、继承及多态,使其代码可重用并易于维护。
- C++是一门高效的程序设计语言,既可以进行过程化程序设计,又可以进行面向对象程序设计。
1.2 结构化程序设计
结构化程序设计可以有效地将一个复杂的问题分解为若干个易于处理的子问题,每一个子问题都可以独立地编程解决,从而将整个程序划分为多个子模块或过程,因此,结构化程序设计是一种面向过程的程序设计方法。在结构化程序设计方法中程序的基本构成单位是函数或者过程。
1.3 面向对象程序设计
面向对象程序设计是完成程序设计的一种新的方法,它汲取了结构化程序设计中最为精华的部分。可以说“面向对象程序设计是进一步被结构化的结构化程序设计”。
在面向对象程序设计中,将对象作为构成软件系统的基本单元,并从相同类型的对象中抽象出一种类型的数据结构——类。对象是类的实例。类是一种区别于其他各种一般数据类型的特殊类型。类的成员中不仅包含描述类对象属性的数据,还包含对这些数据进行处理的程序代码,称之为对象的行为。对象将其属性和行为封装在一起,并将其内部大部分的实现细节隐藏起来,仅通过一个可控的接口与外界进行交互。
面向对象程序设计不仅实现了数据抽象,而且通过抽象出相关类的共性,进而形成一种基类,再此基础上,采用继承的方式,对基类增添不同的特性而派生出多种特殊类(派生类),从而建立了类与类之间的多层结构关系,为软件复用提供了有效的途径。
1.4 面向对象程序设计的基本特点
- 抽象性:包括数据抽象和行为抽象,是通过对事物进行深入的分析而得到的对某事物的言简意赅地特性描述。
- 封装性:在面向对象程序设计中,把某些相关的方法与数据结合在一起,形成一个数据和操作的封装体,这个封装体向外提供一个可以控制的接口,其内部大部分的实现细节则对外隐藏,从而达到对数据访问权限的合理控制,封装可以使得程序中各部分之间的相互影响达到最小,并且提高程序的安全性,简化代码的编写工作。
- 继承性:是软件复用的一种方式,通过继承使得一个对象可以获得另一个对象的属性,并加入属于自己的一些特性。
- 多态性:多态性表现为同一属性或操作在一般类及特殊类中具有不同的语义。
1.5 C++语言的词法
1.5.1 C++语言的字符集
- 大小写英文字母:a~z和A~Z
- 数字字符:0~9
- 其他字符:+ - * / % = () <> [] {} ' " _ ~ | , . : ; ? ! # & ^
1.5.2 C++语言标识符
标识符是程序员自定义的单词,标识符主要用于变量、常量、类型和函数等的命名,C++语言要求标识符必须是非数字开头的字母、数字和下划线构成。
注意:
- 标识符中只能出现字母、数字、下划线等三类字符,且只能以字母或下划线开头。
- 标识符中区分大小写字母。
- 标识符的长度可以是任意的,但具体最大长度由编译器决定。
- 标识符应避免使用系统已定义的标识符。
- 标识符应尽量为有意义的单词,增强代码的可读性。
1.5.3 C++语言保留字
保留字(又称关键字)是系统中已经定义的标识符,在程序中表示特定的含义。
and | and_eq | asm | auto | bitand | bitor |
---|---|---|---|---|---|
if | else | switch | case | break | return |
int | double | float | char | bool | const |
default | for | while | exturn | continue | long |
false | true | class | firend | catch | short |
除上述保留字之外还有很多,不再一一赘述。
1.6 C++程序的结构特点与书写格式
1.6.1 C++示例程序
示例程序 1
“不积跬步无以至千里”,万事始于“Hello World”。
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World!"<<endl;
return 0;
}
示例程序 2
键盘输入a、b、c三个整数,屏幕显示其中的最大值。
#include <iostream>
using namespace std;
int main()
{
int a,b,c,max;
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
cout<<"c="; cin>>c;
max=a;
if(b>max) max=b;
if(c>max) max=c;
cout<<"max="<<max;
return 0;
}
1.6.2 C++程序的基本组成
注释
注释是写程序者为读程序者提供的说明与注解,是提高程序可读性的一种措施。/....../可以实现跨行注释,//......//可以实现单行注释。
/*
这是一条跨行注释
int a=1,b=2;
cout<<a+b<<endl;
*/
int c; // 这是一条单行注释
编译预处理
每个以符号"#"开头的行,称为编译预处理行。编译预处理的作用是在编译前将指定的头文件包含到程序文件中,是C++提供的一种模块化工具。
程序主体
函数定义和类的定义是C++程序的主体。C++函数体或类体是由若干语句组成的,语句是程序的基本单位,程序中的语句用分号表示结束。
1.7 C++程序的实现
1.7.1 编辑
编辑是将C++语言源程序录入到计算机中,生成磁盘文件并加以保存的过程。
1.7.2 编译
C++语言是一种以编译方式来实现的高级语言,C++源程序必须经过编译才能运行,编译工作由系统提供的编译器来完成。编译器的功能是将程序的原地阿妈转换成目标代码,然后,再将目标代码进行链接,生成可执行文件,整个编译过程可以分为如下三个子过程:
- 预处理过程:源程序编译时,首先经过预处理过程,先执行程序中的预处理命令,执行后在继续后面的编译。
- 编译过程:在编译过程中,主要进行词法分析和语法分析。在分析过程中,发现有不符合要求的词法或者语法时,及时报告用户,并将错误信息显示在屏幕上,在这个过程中还要生成一个符号表,用来映射程序中各种符号及其属性。
- 链接过程:将编译过程中生成的目标代码进行链接处理,最后生成可供机器运行的可执行文件。在链接过程中,往往还要加入一些系统提供的库文件代码。经过编译后形成的目标代码文件的扩展名为.obj,经过链接后生成的可执行文件扩展名为.exe。
1.7.3 运行
在图形界面中双击可执行文件或在DOS系统中输入可执行文件名,再按下Enter即可运行。