第 1章 C++ 概 述
1.1 面向对象程序设计
1.2 C++的发展和特点
1.3 C++程序基本结构
1.4 C++程序的上机实现
1.1 面向对象程序设计
1.1.1 基本概念
1,对象对象是构成世界的一个独立单位,可以很简单,也可以很复杂,复杂的对象可以由简单的对象构成 。
现实世界中的对象既具有静态的属性 ( 或称状态 ),又具有动态的行为 ( 或称操作 ) 。
所以,现实世界中的对象一般可以表示为:
属性 +行为 。
现实世界中的对象一般具有以下特性:
( 1) 每一个对象必须有一个名字以区别于其他对象 。
( 2) 用属性来描述对象的某些特征 。
( 3) 有一组操作,每个操作决定对象的一种行为 。
在面向对象程序设计中,对象是由对象名,
一组属性数据和一组操作封装在一起构成的实体 。 其中属性数据是对象固有特征的描述,
操作是对这些属性数据施加的动态行为,是一系列的实现步骤,通常称之为方法 。
形象的比喻,一个对象就好比一台录音机 。
2,类在面向对象程序设计中,类是具有相同属性数据和操作的对象的集合,它是对一类对象的抽象描述 。 类是创建对象的模板,
它包含着所创建对象的状态描述和方法的定义,一般是先声明类,再由类创建其对象 。 按照这个模板创建的一个个具体的实例,就是对象 。
3,消息在面向对象程序设计中,当要求一个对象做某一操作时,就向该对象发送一个相应的消息 。 一个对象向另一个对象发出的请求被称为,消息,。 当对象接收到发给它的消息时,就调用有关的方法,执行相应的操作 。 这种对象与对象之间通过消息进行相互联系的机制,就叫做消息传递机制 。 面向对象程序设计通过消息传递来实现对象的交互 。
4,方法方法就是对象所能执行的操作 。 方法包括接口和方法体两部分 。 方法的接口就是消息的模式,它告诉用户如何调用该方法;
方法体则是实现操作的一系列步骤,也就是一段程序代码 。
1.1.2 传统程序设计及其局限性局限性主要表现在以下几个方面:
1,传统程序设计开发软件的生产效率低下
2,传统程序设计难以应付庞大的信息量和多样的信息类型
3,传统程序设计难以适应各种新环境
1.1.3 面向对象程序设计及其优点面向对象的程序设计方法 。 它不是以过程为中心,而是以对象为中心环节,提出了
,对象 +消息 =程序设计,的理论,使人们对复杂系统的认识过程与系统的程序设计实现过程尽可能地一致 。
面向对象程序设计主要有以下优点:
1,可提高程序代码的重用性
2,可控制程序的复杂性
3,可改善程序的可维护性
4,能更好地支持大型程序设计
5,增强了计算机处理信息的范围
6,能很好地适应新环境
1.1.4 面向对象程序设计的特点
1,封装性封装是一种数据隐藏技术,在面向对象程序设计中可以把数据和与数据有关的操作集中在一起形成类,将类的一部分属性和操作隐藏起来,不让用户访问,另一部分作为类的外部接口,用户可以访问 。 类通过接口与外部发生联系,用户只能通过类的外部接口使用类提供的服务,而内部的具体实现细节则被隐藏起来,对外是不可见的 。
封装可以描述为:
① 一个清楚的边界 。
② 一个外部接口 。
③ 隐藏受保护的属性和内部操作 。
2,继承性在面向对象程序设计中,继承是指新建的类从已有的类那里获得已有的属性和操作 。
已有的类称为基类或父类,继承基类而产生的新建类称为基类的子类或派生类 。 由父类产生子类的过程称为类的派生 。
C++语言支持单继承和多继承 。 通过继承,
程序可以在现有类的基础上声明新类,即新类是从原有类的基础上派生出来的,新类将共享原有类的属性,并且还可以添加新的属性 。 继承有效地实现了软件代码的重用,增强了系统的可扩充性 。
3,多态性在面向对象程序设计中,
多态性是指相同的函数名可以有多个不同的函数体,即一个函数名可以对应多个不同的实现部分 。 在调用同一函数时,由于环境的不同,可能引发不同的行为,导致不同的动作 。
1.1.5 面向对象程序设计语言
( 1) 开发全新的面向对象程序设计语言,
其 中 最 具 有 代 表 性 的 语 言 是 Java,
Smalltalk和 Eiffel。
( 2) 对传统语言进行面向对象程序设计的扩展 。 这类语言又称,混合型语言,,
其最典型的代表是 C++。
1.2 C++的发展和特点
1.2.1 C++的发展
1.2.2 C++的特点
l C++全面兼容 C语言,许多 C语言代码不经修改就可以在 C++中使用 。
l 用 C++编写的程序可读性更好,代码结构更为合理 。
l 生成代码质量高,运行效率仅比汇编语言慢 10%~20%。
l 从开发时间,费用到形成软件的可重用性,可扩充性,可维护性和可靠性等方面有很大提高,使得大中型软件开发变得容易很多 。
l 支持面向对象程序设计,可方便地构造出模拟现实问题的实体和操作 。
1.2.3 C++与 C语言的关系
1.2.3.1 C++保持了与 C语言的兼容
1.2.3.2 C++对 C语言作了很多改进
C++既保持了 C语言的简洁,高效的特点,
同时又对 C语言作了改进和补充,主要有以下几点:
( 1) 增加了一些新的运算符,使得 C++应用起来更加方便 。 例如:,:,new,delete、
->等 。
( 2) 改进了类型系统,增加了安全性,C
语言中类型转换很不严格 。 C++规定类型转换多采取强制转换 。 又规定函数的说明必须采用原型 。 对缺省类型作了些限制 。
增加了编译系统检查类型的能力 。
( 3) 引进了,引用,概念,使用引用作为函数参数带来了更大的灵活和方便 。
( 4) 允许函数和运算符重载,允许设置缺省参数,这些措施提供了程序的灵活性,
减少了冗余性,有引进了内联函数的概念,
提高了程序的效率 。
( 5) 对变量说明更加灵活 。 C语言只允许在函数体内部进行说明,而且必须先声明后使用,否则编译出错 。 C++打破了这一限制,
可以根据需要随时地变量进行说明 。
1.2.3.3 C++与 C语言的本质区别
1.3 C++程序基本结构
1.3.1 C++程序基本结构
【 例 1.1】 一个简单的 C++程序。
# include <iostream.h>
void main()
{
// 在显示器上输出显示一行字符串
cout<<”This is my first C++
program!”<<endl;
}
1.3.2 C++程序的书写格式
( 1)一般情况下一行只写一条语句。
( 2) C++程序书写时要尽量提高可读性。
( 3) C++程序中大括号 {}使用较多,其书写方法也较多,建议用户要养成使用大括号 {}的固定风格。
1.4 C++程序的上机实现图 1-1 C++程序操作流程编辑 编译 连接 运行源程序
H e l l o,c p p
目标程序
H e l l o,o b j
可执行程序
H e l l o,e x e
结果有错误 无错误
1.4.1 编辑编辑是将写好的 C++源程序输入到计算机中,生成磁盘文件的过程 。
默认文件扩展名为 *.CPP。
1.4.2 编译编辑好的源程序必须经过编译,翻译成计算机能够识别的机器代码,计算机才能执行 。
1.4.3 连接编译可以生成在计算机上运行的可执行文件 。
1.4.4 运行可执行文件可以在 Windows环境下直接双击运行,也可以在 Visual C++ 6.0的集成开发环境下运行 。