目 录 1
前言 1
第一章Turbo C++介绍 1
1.1 什么是C++ 1
1.2 C++对C的扩充 2
1.3一个简单的Turbo C++程序的分析 3
1.4类 4
1.5一个Turbo C++程序实例的完整分析 6
1.6小结 7
1.7练习 7
第二章使用Turbo C++编译程序 8
2.1 C++程序的编排 8
2.1.1说明main() 10
2.1.2头文件的内容 11
2.1.3避免多重定义 12
2.1.4包含文件的查找 12
2.2编译C++程序 12
2.2.1两种编译方式 12
2.3使用命令行编译程序 13
2.3.1 C与C++ 13
2.3.2其它命令行选择项 15
2.3.3使用.CFG文件 15
2.4 Turbo C++IDE 16
2.4.1 在IDE中设置选择项 17
2.4.1.1 Compiler选择项 17
2.4.1.2 Code generation选择项 18
2.4.1.3 C++选择项 18
2.4.1.5 Source选择项 19
2.4.1.6 Message选择项 19
2.4.1.4 Optimigation选择项 19
2.4.1.7Editor选择项 20
2.4.1.8 Make选择项 20
2.4.1.9调试程序的设置 20
2.4.1.10选择项的保存 21
2.5项目计划文件 22
2.5.1建立项目 23
2.5.2保存项目计划文件 23
2.5.3使用项目计划文件 23
2.6小结 23
2.7练习 23
第三章C++的要素:第一部分 25
3.1文字常量 25
3.3字符串文字 26
3.2字符常量 26
3.4标识符 27
3.5说明类型 28
3.5.1基本类型 28
3.5.2派生类 29
3.5.3指针 30
3.5.3.1指向函数的指针 31
3.5.4 引用 33
3.5.5数组 35
3.5.6枚举类型 36
3.5.7类类型 37
3.5.8使用typedef 39
3.5.9类型转换 39
3.5.10常量 40
3.5.10.1常量指针和引用 40
3.5.10.3在头文件中使用常量 42
3.5.10.2使用常量 42
3.5.11易失量 44
3.6 C++程序实例 44
3.7小结 46
3.8练习 46
第四章C++的要素:第二部分 48
4.1五个数据属性 48
4.1.1存储类 48
4.1.2持续时间 50
4.1.3链接 50
4.2运算符和表达式 51
4.3语句 52
4.4块:复合语句 52
4.5作用域、可见性和名空间 52
4.5.1作用域 53
4.5.2作用域运算符 55
4.5.3名空间 56
4.6嵌套枚举 58
4.7嵌套类类型 59
4.8标记和类型名 60
4.9 C++中的说明 62
4.9.1在循环中使用说明 62
4.9.2重复说明 64
4.9.3初始化中转移的使用 65
4.10小结 65
4.11练习 65
第五章Turbo C++中的函数 67
5.1 函数原型 67
5.1.1 C中的不安全链接 69
5.1.3 C++中的不安全链接 71
5.1.2类型安全链接 71
5.1.4使用未指定自变量或不使用自变量 72
5.2在C++程序中使用C函数 73
5.2.1使用缺省自变量 73
5.2.2使用引用自变量 76
5.2.2.1传递常量引用 76
5.2.2.2返回引用 78
5.2.2.3非法引用 80
5.2.3直接插入函数 81
5.2.3.1直接插入函数和头文件 82
5.2.4重载函数 84
5.2.4.1解决重载函数中的多义性问题 85
5.3小结 87
5.4练习 87
6.2一个抽象数据类型的分析 89
第六章掌握类 89
6.1类:抽象数据类型的实现 89
6.3一个类的分析 91
6.4成员函数说明 92
6.4.1成员函数中的作用域 94
6.4.2成员函数的结构 96
6.4.3使用this指针 97
6.5数据隐蔽 98
6.5.1存取函数 99
6.5.2类说明的结构 101
6.5.3置类成员的存取级 102
6.6直接插入成员函数 105
6.6.1直接插入成员函数的说明 105
6.7举例 108
6.8小结 110
6.9练习 110
第七章建立和初始化对象 113
7.1使用初始化列表 113
7.2构造函数 114
7.2.1调用构造函数 116
7.2.2带缺省自变量的构造函数 116
7.2.3对构造函数的限制 117
7.2.4重载构造函数 117
7.2.5使用带联合的构造函数 120
7.2.6特殊的构造函数 121
7.2.7缺省构造函数 122
7.2.8复制构造函数 122
7.2.9类型转换构造函数 123
7.3析构函数 124
7.4建立并解除复杂的对象 126
7.4.1使用成员初始化列表 126
7.4.1.1初始化顺序 127
7.4.2链接构造函数调用 128
7.4.3做为成员的指针、引用和常量 129
7.4.4链接析构函数调用 130
7.5建立对象数组 131
7.5.1析构函数和对象数组 133
7.5.2隐式数组初始化 134
7.5.3数组部分初始化 134
7.6建立动态对象 135
7.6.1 new运算符 135
7.6.2 delete运算符 136
7.7一个简单的类Window 138
7.9练习 143
7.8小结 143
第八章类的特性的进一步分析 146
8.1静态数据成员 146
8.2静态成员函数 148
8.3常量成员函数 150
8.4友元函数 152
8.4.1何时使用友元 154
8.4.2将成员函数做为友元使用 156
8.4.3使用友元类 158
8.4.4使用合作类 161
8.5迭代对象 163
8.6小结 168
8.7练习 168
9.1什么是继承 170
第九章继承和派生类 170
9.1.1术语 171
9.1.2建立分级结构 171
9.1.3继承的类型 172
9.2继承的益处 172
9.3代码复用 173
9.3.1用组合复用类 173
9.3.2用继承复用类 174
9.3.3赋值兼容性规则 175
9.3.4复用派生类对象的函数 176
9.4多态性 178
9.4.1 在派生类中使用重载函数 179
9.4.2静态与动态联编 180
9.5使用虚函数 181
9.5.1将多态性对象传递给函数 183
9.5.2调用被继承函数 185
9.5.3返回级 185
9.5.4虚函数与重载函数 186
9.5.5虚函数与非虚函数交互作用 187
9.5.6虚函数的结构 188
9.6在派生类中使用构造函数和析构函数 188
9.6.1虚构造函数和析构函数 191
9.7继承与数据隐藏 192
9.7.1使用受保护成员 194
9.8抽象类 195
9.9小结 201
9.10练习 201
第十章算符函数的使用 204
10.1算符重载举例 204
10.2说明算符函数 205
10.2.1理解算符函数调用 207
10.2.2重载算符函数 208
10.2.3在算符函数中使用引用自变量 209
10.3对算符函数的限制 210
10.4重载赋值运算符 210
10.4.1含有动态内存的赋值 211
10.4.2赋值与初始化 212
10.4.3 operator=()与复制构造函数进行比较 213
10.4.4链接赋值 214
10.4.5赋值运算符的特殊规则 214
10.4.6使用基类operator=()函数 215
10.5重载下标运算符 216
10.6重载+运算符 218
10.7使用友元算符函数 219
10.8.1类型转换 221
10.8转换算符函数 221
10.8.2隐式类型转换 223
10.9 Circular-hum类回顾 224
10.10小结 228
10.11练习 228
第十一章C++I/O流库 231
11.1流的模式 231
11.2流运算符 232
11.3 iostream库的结构 233
11.4预定义流对象 234
11.5使用字符级流函数 234
11.5.1链接I/O操作 235
11.5.2字符级I/O实例 236
11.6测试流状态 237
11.7置流状态 239
11.8使用高级流运算符 241
11.8.1链接流运算符 243
11.8.2控制格式化 243
11.8.2.1使用I/O操作程序 244
11.8.2.2格式化数字 245
11.8.2.3使用输入格式 246
11.8.2.4输入字符串 247
11.8.3重载流运算符 248
11.8.4建立I/O虚函数 250
11.9面向流的文件I/O 252
11.9.1打开和关闭文件 253
11.9.2随机存取I/O 255
11.10小结 256
11.11练习 256