《C++语言和面向对象程序设计 第2版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:宛延闿
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1998
  • ISBN:7302027943
  • 页数:353 页
图书介绍:内容简介C++程序设计语言和面向对象程序设计代表了旨在使计算机问题解更符合人的思维活动,这是一场软件开发方法的革命。面向对象模型和面向对象设计与实现对软件开发起着关键作用。全书共分十章。第一章概论;第二、三章是C到C++的过渡;第四章是C++环境中的C;第五、六、七章分别介绍了数据封装和隐藏、继承和导出类、多态性和虚拟函数;第八、九章分别介绍面向对象模型和面向对象设计与实现;第十章分两大部分:第一部分介绍面向对象设计与实现的两个典型实例分析;第二部分给出综合的四个有代表性的C++和面向对象典型实例分析。本书由浅入深地围绕面向对象的主要特征为主干线,通过大量典型实例循序渐进地介绍C++语言、面向对象模型、面向对象设计与实现,以及面向对象程序设计。是大专院校学生、硕士生以及博士生的教科书,适用于广大软件工作者,也是学习C++及面向对象方法的科技工作者较全面的参考书,同时本书也可作为现代软件工程课程和软件开发方法的补充教材。

第一章 绪论 1

1.1 综述 1

1.2 面向对象程序设计 2

1.3 面向对象问题解 3

1.4 类、对象和封装 4

1.5 子类——继承性和多态性 6

1.6 面向对象程序设计的挑战 6

1.6.1 划分软件为类 6

1.6.2 对已存的软件系统增加功能 7

1.6.3 类型和子类型的层次结构 7

1.6.4 应改变典型软件开发过程 8

1.6.5 对“算法+数据结构=程序设计”的挑战 8

1.7 面向对象方法 9

1.7.1 什么是面向对象? 9

1.7.2 面向对象开发方法 11

1.7.3 面向对象方法学 11

1.7.4 三种模型 12

1.7.5 小结 13

第二章 从C语言如何过渡到C++语言 14

2.1 C++语言:一个正在演变的语言及其发展史 14

2.2 在较小范围内如何将C++增强C 16

2.2.1 注释行 16

2.2.2 枚举名 16

2.2.3 结构体或类名 16

2.2.4 在块(分程序)内说明 17

2.2.5 作用域限定运算符 17

2.2.6 const说明符 17

2.2.7 无名共用体(anonymous unions) 17

2.2.8 显式类型转换 18

2.2.9 函数原型 18

2.2.10 函数名重载 18

2.2.11 函数参数的缺省值 19

2.2.12 具有不确定参数个数的函数 19

2.2.13 函数中引用参数 19

2.2.14 inline说明符 19

2.2.15 new和delete运算符 20

2.2.16 指向void的指针和返回void函数 20

2.3 在较大范围内如何将C++增强C 20

2.3.1 类的构造和数据封装 21

2.3.2 结构是一种特殊类 21

2.3.3 构造函数和析构函数 22

2.3.4 私有、保护和公共部分 22

2.3.5 对象和消息 22

2.3.6 友元(friends) 23

2.3.7 类中运算符和函数名重载 23

2.3.8 导出类 23

2.3.9 虚拟函数 23

2.3.10 流库 24

第三章 快速掌握C++语言 25

3.1 注释行 25

3.2 常量、类型和说明 25

3.3 C++运算符 31

3.4 传递引用 33

3.5 指针 34

3.6 const说明符 40

3.7 void类型 42

3.8 枚举类型 43

3.9 无名共用体(anongmous unions) 44

3.10 显式类型转换 44

3.11 函数 45

3.11.1 函数原型 46

3.11.2 内联(inline)函数 46

3.11.3 缺省自变量 46

3.11.4 重载函数名 47

3.11.5 不确定自变量个数的函数 48

3.11.6 指向函数的指针和类属 48

3.12 C++系统的文件和物理组织 53

第四章 C++环境中的C 54

4.1 函数调用 54

4.2 函数参数表 55

4.3 函数原型 55

4.4 引用型参数 56

4.5 参数个数不定 59

4.6 函数指针 60

4.7 const类型说明符 62

4.8 C代码的接口 64

4.8.1 设计的考虑 64

4.8.2 C语言连接 65

4.8.3 从C调用C++ 66

4.8.4 在C和C++之间共享头文件 67

4.8.5 将C数据输入到C++ 70

4.8.6 C++数据输入到C 70

4.9 操作符引用返回值 72

第五章 数据封装和数据隐藏 74

5.1 过程语言、数据抽象、封装和数据隐藏 74

5.2 C++类 75

5.2.1 C++类的基本概念和实例 76

5.2.2 C++类与C结构 81

5.3 类自引用 83

5.4 构造函数和析构函数 85

5.4.1 一个C++类的栈抽象数据类型的实现 86

5.4.2 用Modula-2实现的栈抽象数据类型 88

5.5 作为成员的类对象 90

5.6 对象向量 92

5.7 友元(friends) 93

5.8 类的静态成员 95

5.9 运算符重载 95

5.9.1 双目和单目运算符 96

5.9.2 运算符重载的两个例子 97

5.9.3 <stream.h>库 108

5.10 几个基本行类 112

5.10.1 类属表 112

5.10.2 用二叉查找树实现类属查找表 117

5.10.3 search-table抽象的C++封装 118

第六章 导出类和继承性 129

6.1 导出类构造 130

6.2 父类有构造函数的导出类 134

6.3 导出类的一些例子 136

6.3.1 导出counter类 136

6.3.2 一个大学的类系统 138

6.3.3 从类属表中导出栈和队列 142

6.4 继承性 145

6.4.1 简单继承 145

6.4.2 范围和访问控制 150

6.4.3 多重继承 158

第七章 多态性和虚拟函数 168

7.1 虚拟函数 169

7.2 生成链表的一个面向对象解 172

7.2.1 异质链表的非多态性解 172

7.2.2 异质链表的面向对象解 178

7.2.3 非面向对象和面向对象系统的维护 186

7.3 多态性的异质查询树 191

7.4 使用多态性构造的有限状态自动机 196

第八章 面向对象模型 202

8.1 对象模型 202

8.1.1 对象图 202

8.1.2 连接和关联 204

8.1.3 高级的连接和关联 206

8.1.4 概括和继承 208

8.2 动态模型 211

8.2.1 事件和状态 212

8.2.2 状态图 215

8.2.3 操作 216

8.2.4 动态模型的实例(程控恒温器) 217

8.2.5 对象模型和动态模型的关系 221

8.3 功能模型 222

8.3.1 数据流图 222

8.3.2 操作 225

8.3.3 约束 227

8.3.4 功能模型的实例(飞行模拟装置) 227

8.3.5 功能模型与对象和动态模型的关系 230

第九章 面向对象设计与实现 231

9.1 分析 231

9.2 系统设计 233

9.2.1 将系统划为分子系统 233

9.2.2 系统设计阶段综述 234

9.2.3 系统设计的几个步骤 235

9.3 对象设计 235

9.3.1 对象设计综述 236

9.3.2 对象设计的步骤 237

9.4 小结 238

第十章 面向对象设计与C++面向对象程序设计典型实例剖析 239

面向对象设计与实现的典型实例剖析 239

10.1 计算机动画 239

10.1.1 动画的制作过程 239

10.1.2 问题叙述 241

10.1.3 分析 242

10.1.4 系统设计 245

10.1.5 对象设计 246

10.1.6 实现 248

10.2 对象图编译 250

10.2.1 问题叙述 251

10.2.2 系统设计 256

10.2.3 对象设计 256

C++与面向对象程序设计典型实例剖析 260

10.3 快速拼写检查程序 260

10.3.1 拼写检查程序的设计说明 260

10.3.2 拼写检查程序的高层设计 260

10.3.3 拼写检查程序的低层设计 263

10.3.4 拼写检查程序的实现 264

10.4 银行出纳员离散事件模拟 275

10.4.1 队列模拟的设计说明 275

10.4.2 队列模拟的高层设计 276

10.4.3 队列模拟的低层设计 281

10.4.4 队列模拟的实现 281

10.4.5 模拟输出 297

10.4.6 队列模拟的维护 300

10.5 交互式函数评价程序 304

10.5.1 函数评价程序的设计说明 304

10.5.2 表达式树的回顾 306

10.5.3 函数评价程序的高层设计 311

10.5.4 函数评价程序的低层设计 316

10.5.5 函数评价程序的全部实现 323

10.6 用C++仿真生态系统 341

10.6.1 人工生命是什么? 341

10.6.2 计算机和生命 342

10.6.3 生态系统仿真的基本说明 342

10.6.4 用C++仿真生态系统实例 343

参考文献 353