目录 1
第一篇 学习C++ 3
第一部分 C++介绍 3
第一章 C++初步 3
1.1 使用流进行输入和输出 3
1.2 标准的输出流 4
1.3 格式化输出 5
1.4 标准的错误流 5
1.5 标准输入流 5
1.6 C++注释 6
1.7 函数原型 7
第二章 C++对C的增强 9
2.1 缺省函数参数 9
2.2 变量声明的出现位置 10
2.3 域分辨操作符 11
2.4 inline函数 12
2.5 const修饰词 14
2.6 枚举类型 15
2.7 重载的函数 16
2.8 链接说明 19
3.1 作为别名的引用 21
第三章 引用 21
3.2 引用的初始化 22
3.3 引用与指针:相似性和区别 23
3.4 作为函数参数的引用 23
3.5 作为返回值的引用 26
3.6 小结 27
第二部分 类 28
第四章 类简介 28
4.1 在C中创建新的数据类型 28
4.2 在C++中创建新的数据类型 30
4.3 对象的创建和消除 37
4.4 访问数据成员 38
4.5 访问函数与公有数据成员 41
4.6 返回引用 42
4.7 const对象和成员函数 43
4.8 成员对象 44
4.9 使用头和源文件 47
第五章 类与动态内存分配 49
5.1 自由存储区 49
5.2 new操作符 50
5.3 delete操作符 50
5.4 自由存储区与内部类型 51
5.5 具有指针成员的类 52
5.6 赋值操作符 55
5.7 this指针 57
5.8 在返回语句中使用*this 58
5.9 避免this指针的不良使用 59
5.10 赋值与初始化 59
5.11 拷贝构造函数 60
5.12 传递和返回对象 61
5.13 传递和返回对对象的引用 63
第六章 类的其他特性 65
6.1 静态成员 65
6.2 静态的数据成员 65
6.3 静态成员函数 67
6.4 友元 68
6.5 类对象数组 73
6.6 自由存储区和类数组 74
6.7 高级自由存储技术 77
第七章 继承性与多态性 84
7.1 在C中处理相关类型 84
7.2 在C++中处理相关类型 86
7.3 重定义基类的成员 89
7.4 派生类构造函数 91
7.5 基类和派生类之间的转换 92
7.6 使用基类指针的集合 94
7.7 虚函数 95
7.8 多态性 97
7.9 动态联编 98
7.10 虚函数的实现 98
7.11 纯虚函数 100
7.12 基类和派生类中的析构函数 102
7.13 保护成员 102
7.14 公有和私有基类 103
7.15 多重继承性 104
第八章 操作符重载与转换函数 106
8.1 操作符重载 106
8.2 操作符重载的规则 107
8.3 什么时候不应重载操作符 108
8.4 为数值类重载操作符 109
8.5 将操作符定义为友元函数 112
8.6 重载算术操作符的一些诀窍 113
8.7 为数组类重载操作符 114
8.8 类的转换 116
8.9 由构造函数执行的转换 117
8.10 转换操作符 118
8.11 转换和操作符之间的歧义性 120
8.12 转换之间的歧义性 121
9.1 面向对象程序设计的特点 124
9.2 抽象 124
第九章 面向对象设计基础 124
第三部分 面向对象的设计 124
9.3 类 127
9.4 封装性 127
9.5 类层次 130
9.6 继承代码 130
9.7 继承界面 131
9.8 设计一个面向对象的系统 132
9.9 类的确定 132
9.10 赋予属性和行为 133
9.11 找出类之间的关系 134
9.12 将类安排成层次 135
9.13 复合与继承性 136
9.14 根据继承关系设计类 137
9.15 多重继承性 138
第十章 面向对象设计举例 139
10.1 需求分析 139
10.2 类的设计 140
10.3 定义预备的类界面 143
10.4 层次的扩展 151
第一部分 提高程序的性能 157
第十一章 预编译头文件的使用 157
第二篇 程序设计技术 157
11.1 什么时候预编译源代码 158
11.2 生成和使用预编译的头文件 158
11.3 预编译头编译程序选项 158
11.4 在项目中使用预编译的头文件 166
第十二章 为16位的C程序管理内存 171
12.1 指针的尺寸 171
12.2 选择一种标准的内存模式 173
12.3 混合内存模式 180
12.4 内存模式的定制 185
12.5 基址指针和数据的使用 191
12.6 为函数使用基址寻址 200
12.7 虚内存管理器的使用 201
第十三章 为16位C++程序管理内存 207
13.1 内存模式与类 207
13.2 自由存储区 211
13.3 成员函数的基址寻址 215
第十四章 16位嵌入汇编程序的使用 218
14.1 嵌入汇编的优点 218
14.2 __asm关键字 218
14.3 在__asm分程序中使用汇编语言 219
14.4 在__asm分程序中使用C或C++ 221
14.5 寄存器的使用和保存 225
14.7 跳转至标号 226
14.6 使用浮点指令 226
14.8 调用C函数 228
14.9 调用C++函数 228
14.10 将__asm分程序定义为C宏 228
14.11 优化 230
第十五章 浮点数学运算的控制 231
15.1 浮点类型的声明 231
15.2 long double类型的运行时刻库支持 233
15.3 数学软件包 233
15.4 选择浮点选项(/FP) 234
15.6 浮点选项之间的兼容性 237
15.5 有关浮点选项的库考虑 237
15.7 使用NO87环境变量 238
15.8 不兼容的问题 238
第二部分 特殊环境 239
第十六章 Windows程序设计 239
16.1 优化Windows程序的保护模式前言和结语代码 239
16.2 指定程序的开始执行点 241
16.3 Windows DLL初始化代码 242
16.4 Windows终止例程 242
第十七章 QuickWin程序 244
17.1 QuickWin图形库的功能 244
17.2 使用QuickWin的两种方式 245
17.4 QuickWin用户界面 247
17.3 QuickWin与Windows的比较 247
17.5 QuickWin的增强功能综述 251
17.6 构造QuickWin程序 253
17.7 运行QuickWin程序 253
17.8 编写增强的QucikWin程序 254
17.9 MS-DOS图形与QuickWin图形之间的区别 263
第十八章 混合语言程序设计 268
18.1 混合语言调用 268
18.2 语言约定要求 269
18.3 编译和链接 273
18.4 对高级语言的C调用 274
18.5 对Basic的C调用 275
18.6 对FORTRAN的C调用 277
18.7 对Pascal的C调用 280
18.8 对汇编语言的C调用 283
18.9 对高级语言的C++调用 288
18.10 混合语言程序设计中的数据处理 289
第十九章 编写可移植的C程序 298
19.1 有关硬件的假设 298
19.2 有关编译程序的假设 309
19.3 数据文件的可移植性 314
19.4 VisualC++的可移植性考虑 314
19.5 VisualC++字节顺序 314
参考文献 316