第1章 概论 1
1.1计算机怎样计数 1
1.1.1乒乓球场上的计分牌 1
1.1.2二进制怎样表示全正数和正负数 1
1.1.3计算机中二进制数怎样存储 2
1.2计算机怎样对数据进行处理 3
1.2.1把算法形成的程序输入计算机 3
1.2.2用什么语言输入计算机能懂 3
1.3 C++程序怎样写出和运行 3
1.3.1举个C++程序简例看看 3
1.3.2 C++程序从写出到运行的几个步骤 5
1.3.3本书前几章内容的安排 5
1.4习题 6
第2章 对基本数据分类存储和访问 7
2.1数据分类入驻存储空间听候处理 7
2.1.1基本数据分哪些类 7
2.1.2什么是数据变量的存储空间、长度和取值范围 7
2.1.3数据常量怎样表示 9
2.1.4数据变量首次出场必须声明属何类型 11
2.1.5怎样对数据变量进行访问 11
2.2别名竟然登上大雅之堂 12
2.2.1别名变量概念 12
2.2.2别名变量怎样声明 13
2.2.3用别名对变量进行访问例 13
2.3循址访问是怎样的 14
2.3.1“牧童遥指杏花村”的启发 14
2.3.2指针变量概念 15
2.3.3指针变量怎样声明和赋值 16
2.3.4用指针所指对所指变量进行访问 17
2.3.5基本类型变量的指针 20
2.4对数据变量怎样保护 21
2.4.1可用const声明常值数据变量 22
2.4.2可在声明中用const对指针和别名进行限定 22
2.5习题 24
第3章 数据的运算及简单输入/输出运算 27
3.1运算符和表达式 27
3.1.1运算符 27
3.1.2表达式 28
3.2算术运算符和表达式 28
3.2.1基本算术运算符 28
3.2.2除表达式a/b 28
3.2.3取余表达式a%b 28
3.3自增自减运算符和表达式 29
3.3.1自增自减运算符 29
3.3.2自增自减表达式 29
3.4关系运算符和表达式 30
3.4.1关系运算符 30
3.4.2关系表达式 31
3.5逻辑运算符和表达式 31
3.5.1逻辑运算符 31
3.5.2逻辑表达式 31
3.6位运算符和表达式 32
3.6.1位运算符 32
3.6.2 a|b是按位“或”表达式 33
3.6.3其余的位运算表达式 33
3.7条件运算符和表达式 33
3.7.1条件运算符 33
3.7.2条件表达式 33
3.8赋值运算符和表达式 34
3.8.1赋值运算符 34
3.8.2赋值表达式 35
3.9逗号运算符和表达式 35
3.9.1逗号运算符 35
3.9.2逗号表达式 36
3.10基本数据混合运算时类型的转换 36
3.10.1隐性类型转换 36
3.10.2强迫类型转换 38
3.11指针的增减运算 39
3.11.1指针的增减是什么意思 39
3.11.2指针的整数增减可比作走步 39
3.11.3小小一例竟使多方受益 41
3.11.4指针变量自增减也可比作走步 43
3.11.5指针两种走步的比较 45
3.12简单的输入/输出运算 46
3.12.1输入流和输出流 46
3.12.2提取运算符“﹥﹥”和插入运算符“﹤﹤” 46
3.12.3提取表达式和插入表达式 46
3.12.4基本数据的输入/输出 47
3.13对输入/输出默认格式不如意怎么办 49
3.13.1可用单项格式控制符实现如意的单项格式 49
3.13.2用单项格式控制符实现单项格式例 49
3.14习题 50
第4章 程序流程怎样控制 54
4.1程序流程基本结构有哪几种 54
4.1.1三种基本结构 54
4.1.2两种特殊语句 54
4.2选择结构是怎样的 54
4.2.1 if语句(又叫条件语句) 54
4.2.2 switch语句(开关语句) 58
4.3循环结构是怎样的 60
4.3.1盲童数苹果的故事 60
4.3.2循环基本概念 61
4.3.3 while语句 61
4.3.4 do while语句 63
4.3.5 for语句 64
4.3.6循环结构的嵌套——以鸡鸭天天下蛋为例 67
4.3.7三种循环语句的比较 68
4.4其他控制语句和函数 68
4.4.1 跳出状态的break语句 68
4.4.2只中断本次循环的continue语句 69
4.4.3收尾并终止程序的exit函数 70
4.5习题 70
第5章 分担任务的得力助手——函数 74
5.1函数是怎么回事 74
5.1.1“自顶向下,逐步细化,函数分担”的模块化程序设计 74
5.1.2函数怎样定义 74
5.2怎样调用函数执行任务 76
5.2.1函数原型声明 76
5.2.2函数的调用 77
5.2.3函数自己调用自己——递归调用 79
5.3函数内外变量的作用域和生存期 81
5.3.1作用域就是变量起作用的范围 81
5.3.2变量的死活要看生存期 85
5.4函数内外数据怎样传递 87
5.4.1可通过函数参数进行数据传递 87
5.4.2可用具有默认值的参数传递 91
5.4.3可通过函数返回值进行数据传递 93
5.4.4可通过全局变量进行数据传递 95
5.5什么是内联函数、重载函数、函数模板和模板函数 95
5.5.1内联函数 95
5.5.2重载函数 96
5.5.3函数模板和模板函数 97
5.6指针也能对函数进行调用 98
5.6.1指向函数的指针 98
5.6.2函数指针变量的声明、初始化和赋值 98
5.6.3可用函数指针调用函数 99
5.7函数的多文件组织 100
5.7.1模块化程序设计 100
5.7.2源文件之间的访问 100
5.7.3头文件 101
5.7.4多文件组织怎样编译和链接 102
5.8编译的预处理 103
5.8.1 #include指令 103
5.8.2 #define和#undef指令 104
5.9条件编译 106
5.9.1条件编译有三种形式 106
5.9.2关于条件编译的说明 106
5.10习题 107
第6章 同类型数据排成队——数组 112
6.1一维数组 112
6.1.1一维数组怎样声明和初始化 112
6.1.2用下标表示形式对一维数组元素进行访问 114
6.1.3可用数组名表示一维数组元素 116
6.1.4可用一维数组名调用函数处理一维数组 117
6.2二维数组 120
6.2.1二维数组怎样声明和初始化 120
6.2.2用下标表示形式对二维数组元素进行访问 122
6.2.3可用数组名表示二维数组元素 123
6.2.4可用二维数组名调用函数处理二维数组 126
6.3对字符串怎样处理 131
6.3.1可用一维字符数组处理字符串 131
6.3.2可用库函数处理字符串 133
6.4对字符串组怎样处理 135
6.4.1可用一维字符指针数组处理字符串组 135
6.4.2可用一维字符指针数组名调用函数处理字符串组 136
6.5合适的存储区想要就能有吗 138
6.5.1可用new运算符申请动态配给存储区 138
6.5.2可用delete运算符撤放动态配给的存储区 139
6.5.3可给临时输入的姓名字符串动态配给“经济适用房” 140
6.6应用范例——建立姓名录排序和输出 141
6.6.1问题的提出 141
6.6.2分析 141
6.6.3源程序及说明 142
6.7习题 144
第7章 枚举类型与结构类型 148
7.1枚举类型是怎样的 148
7.1.1枚举类型的定义 148
7.1.2枚举型变量的声明、初始化和赋值 149
7.1.3可调用函数对枚举型变量输入和输出 149
7.1.4“酒楼点菜”一枚举元素的组合状态 150
7.2应用范例——C++用格式状态字表明输入/输出格式的组合状态 151
7.2.1将各种输入/输出格式定义为各个枚举元素 151
7.2.2用格式状态字flag表明多项格式的组合状态 152
7.2.3用格式状态字调用组合格式控制符实现多项格式的组合采用 152
7.3结构类型是怎样的 154
7.3.1结构类型的定义 154
7.3.2结构型变量的声明、初始化和赋值 155
7.3.3可对结构型变量的成员进行访问 156
7.3.4可用结构型数组处理结构型变量 158
7.4什么是链表 162
7.4.1链表怎样组成 162
7.4.2怎样对链表结点进行访问 163
7.4.3对链表进行操作的必做预习题 164
7.5可调用函数对链表进行各项操作 165
7.5.1调用函数把一个结点插入顺序链表 165
7.5.2调用函数建立一条有序新链表 167
7.5.3调用函数输出链表各结点数据 168
7.5.4调用函数删除链表上具有指定值的一个结点 168
7.5.5调用函数撤放链表全部结点动态配给的存储空间 169
7.6应用范例——调用函数建立有序链表和删除指定结点 170
7.6.1问题的提出 170
7.6.2分析 170
7.6.3源程序及说明 170
7.7用typedef可定义某类型的又一个标识符 174
7.7.1用typedef定义某类型又一个标识符例 174
7.7.2用typedef定义某类型又一个标识符的方法步骤 174
7.8习题 174
第8章 类和对象 176
8.1从面向过程到面向对象 176
8.2类具体是怎样的 177
8.2.1类的定义 177
8.2.2对类内各成员访问的控制规则 178
8.2.3类的引用性声明 179
8.2.4面向对象程序设计的多文件组织 179
8.3对象具体是怎样的 179
8.3.1对象的声明 179
8.3.2同类对象之间可以整体赋值 180
8.3.3对对象成员的访问 180
8.3.4地下工作者——本类指针this 182
8.3.5对对象数据成员置值的两种方法 184
8.4迎接对象诞生的函数——构造函数 184
8.4.1构造函数的作用特点和定义形式 184
8.4.2构造函数的重载 186
8.4.3构造函数和new运算符 187
8.5送别对象撤销的函数——析构函数 188
8.5.1析构函数作用特点和定义形式 189
8.5.2一定要定义析构函数吗 190
8.6非要定义构造函数和复制构造函数吗 191
8.6.1默认的构造函数和复制构造函数 191
8.6.2浅复制和深复制 192
8.7类属成员——类的静态成员 193
8.7.1静态数据成员 193
8.7.2静态成员函数 194
8.8类可结交“亲密好友” 195
8.8.1友元的概念 195
8.8.2运用友元的一个例题 196
8.8.3友元声明的一般形式 197
8.8.4关于友元的几点说明 198
8.9什么叫类嵌套 198
8.9.1类嵌套关系 198
8.9.2嵌套类实例 198
8.9.3嵌套类构造函数定义的一般形式 199
8.10类模板和模板类 200
8.10.1什么叫类模板和模板类 200
8.10.2类模板怎样定义 200
8.10.3类模板怎样使用 201
8.11应用范例——面向对象构建学生成绩链表 202
8.11.1问题的提出 202
8.11.2类设计 203
8.11.3创建链表的思路 203
8.11.4源程序及说明 203
8.12习题 206
第9章 继承与派生 208
9.1继承与派生是怎么回事 208
9.1.1继承、派生、基类、派生类概念 208
9.1.2基类和派生类的构成形式 208
9.1.3派生类成员的组成和身份的确定 209
9.2派生类 211
9.2.1举个派生类简例 211
9.2.2派生类的定义形式 212
9.2.3派生类成员存储空间、身份及访问 212
9.2.4派生类的构造函数和析构函数 213
9.3对派生类中同名成员二义性的处理 214
9.3.1类名加域运算符::处理法 215
9.3.2同名覆盖原理 217
9.3.3对共同基类多级多脉继承中同名成员的处理 217
9.3.4用虚基类避免一个数据多种版本 219
9.4类的赋值兼容 221
9.4.1公有派生类对象可以顶替基类对象 221
9.4.2公有派生类对基类的赋值兼容 222
9.4.3公有派生类对象怎样顶替基类对象 222
9.4.4类的赋值兼容规则的实质 224
9.5应用范例——半工半读学生信息管理系统 226
9.5.1问题的提出 226
9.5.2类设计 226
9.5.3源程序及说明 227
9.5.4源程序呼喊改进 230
9.5.5虚函数的提出 231
9.6习题 232
第10章 多态性 234
10.1什么叫做静态联编和动态联编 234
10.2虚函数是怎么回事 234
10.2.1虚函数的定义 234
10.2.2直接访问同名成员函数时的接访规则 235
10.2.3虚函数在实现动态联编多态性中的运用例 237
10.2.4虚析构函数 238
10.3什么是纯虚函数和抽象类 239
10.3.1纯虚函数 239
10.3.2抽象类 240
10.3.3抽象基类例 240
10.4运算符重载是怎样的 241
10.4.1运算符重载概念 241
10.4.2运算符重载要求 242
10.4.3运算符重载函数 242
10.5怎样用成员函数实现运算符重载 242
10.5.1成员函数实现双目运算符重载 242
10.5.2成员函数实现单目运算符重载 245
10.6怎样用友元函数实现运算符重载 247
10.6.1友元函数实现双目运算符重载 247
10.6.2友元函数实现单目运算符重载 248
10.7对象运算中怎样进行类型转换 250
10.7.1转换构造函数 250
10.7.2类型转换函数 251
10.7.3对象运算中类型转换例 251
10.8应用范例——类型转换应用于时间运算中 253
10.8.1问题的提出 253
10.8.2设计思路 253
10.8.3源程序及说明 253
10.9习题 254
第11章 输入/输出流类体系 256
11.1什么是流类和流 256
11.1.1流类概念(端口、模式和成员函数) 256
11.1.2缓冲流 257
11.1.3流类体系 257
11.2基本流类体系是怎样的 257
11.2.1基本流类体系组成 257
11.2.2基本流类体系各组成部分简介 258
11.3什么是I/O标准流 258
11.3.1 I/O标准流概念 258
11.3.2 I/O标准流的端口和模式 258
11.3.3常用于输入的成员函数 259
11.3.4常用于输出的成员函数 261
11.3.5用于格式控制的成员函数 261
11.3.6用于检验出错的成员函数 263
11.4文件流类体系是怎样的 264
11.4.1文件流类体系组成 264
11.4.2文件流类体系各组成部分简介 265
11.5什么是I/O文件流 265
11.5.1 I/O文件流概念 265
11.5.2 I/O文件流的建立,端口和模式的确定 265
11.5.3用于建立和关闭I/O文件流的成员函数 267
11.5.4 I/O文本文件流常用的成员函数 267
11.5.5 I/O二进制文件流常用的成员函数 272
11.6应用范例——文件中建立平方根表 276
11.6.1问题的提出 276
11.6.2分析 276
11.6.3源程序及说明 276
11.7习题 277
第12章 简述VC++6.0编程环境的上机操作 279
12.1编制实现单文件应用程序的方法 279
12.1.1编制一个简单程序 279
12.1.2为简单程序修改错误 282
12.2程序设计中的多文件组织 284
12.3怎样查找程序运行中的错误 286
12.3.1查找程序运行的错误点 286
12.3.2 VC6.0有哪些调试工具 286
12.3.3神奇的单步调试 288
12.4实验题 290
附录A ASCⅡ码表 291
附录B习题参考答案 292