第1章 绪论 1
1.1程序设计与程序设计语言 2
1.1.1计算机与程序设计 2
1.1.2程序设计语言,从低级到高级 4
1.1.3程序设计方法学的发展 7
1.1.4程序设计的范型 9
1.1.5程序设计技术的4个层次 11
1.2 C++语言概述 13
1.2.1为什么选择C++语言 14
1.2.2 C++语言简史 14
1.2.3 C++语言的特点 16
1.3学习本书的指南 18
1.3.1学习C++语言程序设计的难点 18
1.3.2一本好的C++程序设计教程 20
1.3.3本书的内容安排 21
思考题 23
第2章 C++语言初步 25
2.1初识C++程序 26
2.1.1 C++程序实例 26
2.1.2输入/输出(I/O)语句 29
2.2 C++语言的基本符号 31
2.2.1基本符号集 32
2.2.2基本符号的ASCII编码 32
2.3 C++语言的词汇 34
2.3.1关键字 34
2.3.2标识符 35
2.3.3字面常量 36
2.3.4运算符 39
2.3.5分隔符 39
2.4 C++程序的整体结构 39
2.4.1主函数 40
2.4.2预处理命令 41
2.4.3 C++程序的基本框架 46
2.5运行C++程序 50
2.5.1编辑C++程序 50
2.5.2编译和链接过程 50
2.5.3运行一个简单的实例 52
思考题 55
练习题 55
第3章 基本数据类型与基本运算 57
3.1基本数据类型及其派生类型 58
3.1.1数据类型的概念 58
3.1.2基本类型 59
3.1.3基本类型的派生类型 63
3.1.4 enum类型 64
3.1.5整数类型与浮点类型 65
3.2说明语句 65
3.2.1语句 65
3.2.2变量和常量概念 66
3.2.3常量说明 67
3.2.4变量说明 67
3.2.5名字空间 70
3.2.6类型说明 71
3.3基本运算 72
3.3.1运算符和表达式 72
3.3.2运算的分类 73
3.3.3赋值运算 74
3.3.4算术运算 74
3.3.5关系运算 76
3.3.6逻辑运算 76
3.3.7位运算 78
3.3.8其他运算 79
3.3.9运算的优先级 82
3.3.10混合运算与数据的类型转换 84
3.3.11关于C++语言与实现系统的注释 85
思考题 86
练习题 87
第4章 程序的基本控制结构及导出数据类型 89
4.1 C++程序的基本控制结构 90
4.1.1控制语句 90
4.1.2复合语句和空语句 90
4.2分支语句 92
4.2.1两类分支语句 92
4.2.2温度变换程序 95
4.2.3简单的计算器程序 98
4.3循环语句 100
4.3.1 3种循环语句 100
4.3.2求素数 103
4.3.3计算常数e的值 104
4.4无条件控制语句 106
4.5数组类型 110
4.5.1一维数组 111
4.5.2多维数组 113
4.5.3数组与字符串 114
4.6结构类型 114
4.6.1结构类型与结构变量说明 115
4.6.2结构变量的引用和赋值 116
4.6.3结构数组 116
4.7 C++程序实例 117
4.7.1统计学生成绩 117
4.7.2输出三角函数表 121
4.7.3画一个四叶玫瑰线图形 122
4.7.4 Eratosthenes筛法求素数 126
思考题 128
练习题 129
第5章 函数 137
5.1三次方程求根程序的设计 138
5.2函数的说明与使用 139
5.2.1函数的说明 139
5.2.2函数的调用 142
5.2.3函数的返回 143
5.2.4函数的参数 144
5.2.5值调用与引用调用 145
5.2.6内联函数 149
5.2.7关于主函数参数的说明 150
5.3函数的嵌套与递归 152
5.3.1函数的嵌套 152
5.3.2函数的递归 154
5.4函数与运算符的重载 157
5.4.1函数重载 157
5.4.2运算符重载 158
5.5函数与C++程序结构 160
5.5.1库函数的使用 160
5.5.2 SP框架结构与自顶向下程序设计 161
5.5.3函数间的数据传递 164
5.5.4变量与函数的作用域 166
5.6程序实例 169
5.6.1“三色冰激凌”程序 169
5.6.2 Hanoi塔问题 171
思考题 173
练习题 174
第6章 指针和引用类型及动态内存分配 183
6.1指针类型 184
6.1.1指针类型变量的说明 184
6.1.2指针运算符 184
6.1.3指针变量的运算 185
6.1.4指针变量的应用 189
6.1.5关于指针的进一步话题 191
6.1.6指针与动态内存分配 198
6.2引用类型 200
6.3程序实例 203
6.3.1按人名字典序排列电话簿 203
6.3.2构建人员档案链表 205
思考题 209
练习题 210
第7章 类与对象 219
7.1类和对象的说明 220
7.1.1类的说明 220
7.1.2对象的说明 221
7.1.3 this指针 224
7.1.4作为类的结构 224
7.2构造函数与析构函数 225
7.2.1对象初始化 225
7.2.2构造函数与析构函数简介 226
7.2.3构造与析构函数的简单实例 228
7.3类与对象的其他特征 229
7.3.1类就是一个(用户定义的)类型 229
7.3.2类的静态成员 233
7.3.3类的常量成员 234
7.4友元与类之间的关系 236
7.4.1友元函数和友元类 236
7.4.2类与类之间的关系 239
7.5运算符重载用于用户定义类型 241
7.5.1设计一个普通的Set类型 241
7.5.2利用运算符重载改进Set类型 246
7.6程序实例:利用Stack类解迷宫问题 250
7.6.1 Stack类也是一个用户定义类型 250
7.6.2利用Stack类解迷宫问题的思路 251
7.6.3采用回溯技术设计的迷宫程序 252
思考题 256
练习题 257
第8章 继承与派生 263
8.1派生与继承 264
8.1.1派生类说明 264
8.1.2派生类的构造函数和析构函数 265
8.1.3一个实例:公司雇员档案管理 268
8.1.4有关成员存取权限问题的注记 271
8.2其他特征的继承关系 273
8.2.1友元关系以及静态成员的继承 273
8.2.2基类对象和派生类对象间的赋值 273
8.3派生关系中的二义性问题 275
8.4多态性与虚函数 278
8.4.1函数重载与静态联编 279
8.4.2函数超载、虚函数及动态联编 279
8.4.3纯虚函数与抽象基类 283
8.5两个程序实例 284
8.5.1计算函数的定积分 284
8.5.2利用图元类画图的程序 288
思考题 293
练习题 293
第9章 模板 299
9.1 函数模板 300
9.1.1函数模板的概念及说明 300
9.1.2函数模板应用举例 302
9.2类模板 305
9.2.1类模板的概念与说明 305
9.2.2一个队列类模板 307
9.2.3带有类型参数和普通参数的类模板 310
9.3关于类模板的几点说明 312
9.3.1静态成员及友元 312
9.3.2类模板的类型参数的错误检测 312
9.3.3标准模板库STL 314
9.4程序实例:链表类模板的设计 315
思考题 318
练习题 319
第10章 输入输出(I/O)流 321
10.1文件、流及C++的流类库 322
10.1.1流类库的优点 322
10.1.2文件与流的概念 323
10.13 C++的流类系统 324
10.2对标准设备的I/O操作 325
10.2.1 I/O函数 325
10.2.2对用户定义类型进行运算符重载 328
10.3 I/O的格式控制 330
10.3.1类ios中用于格式控制的成员函数 330
10.3.2格式控制符 336
10.3.3用户定义格式控制符 338
10.4磁盘文件的输入输出 340
10.4.1文件的打开与关闭 341
10.4.2使用插入与提取运算符对磁盘文件进行读写 343
10.4.3使用类成员函数对文件流进行操作 344
10.5 text文件与binary文件 350
10.5.1按用户设置的文件形式进行读写 350
10.5.2对数据文件进行随机访问 353
10.6其他输入输出控制函数 357
10.6.1 I/O操作状态控制 357
10.6.2其他I/O控制 359
思考题 360
练习题 361
第11章 异常处理 365
11.1异常处理的基本思想以及C++实现 366
11.1.1异常和异常处理 366
11.1.2 C++的try-throw-catch异常处理机制 367
11.1.3 try-throw-catch异常处理机制的必要性 370
11.2异常处理的进一步讨论 372
思考题 372
练习题 373
附录A Visual C++2008IDE概述 375
附录B Visual C++6.0编程环境简介 391
附录C 标准模板库 405
附录D 标准函数 417
附录E 一个OOP程序设计实例——楼宇电梯系统仿真程序的OOP设计过程 423
参考文献 457