第1章C++编程基础1
1.1程序语言的发展1
1.1.1机器语言1
1.1.2汇编语言1
1.1.3高级语言2
1.1.4C语言2
1.1.5C++语言2
1.2C++语言简介3
1.2.1程序=数据+操作3
1.2.2数据类型3
1.2.3对数据的操作——表达式3
1.2.4数据操作的流程——语句控制3
1.2.5操作的复用——函数3
1.2.6数据和操作的封装——类3
1.2.7类的复用——派生和继承3
1.2.8软件模块4
1.3如何学习C++语言4
1.3.1勤能生巧4
1.3.2风格与规范4
1.4用Visual C++开发程序4
1.4.1程序——从概念到运行4
1.4.2Visual C++简介5
1.4.3建立应用程序5
1.5程序风格7
1.5.1效率与风格7
1.5.2注释——整理编程思路、增加程序的可读性7
1.5.3注释的形式8
1.5.4命名13
1.5.5编排14
1.5.6简单性原则15
1.5.7一致性原则16
小结17
第2章基本C++程序结构18
2.1C++语言成分18
2.1.1字符18
2.1.2数字、标识符和表达式18
2.1.3语法19
2.1.4结构19
2.1.5模块19
2.2程序的基本结构19
2.2.1注释20
2.2.2编译预处理命令#include20
2.2.3main函数20
2.2.4C++程序的执行过程21
2.2.5终端输出22
2.3变量和简单表达式23
2.3.1main函数的返回值24
2.3.2常数和常量24
2.3.3变量27
2.3.4运算符与简单表达式29
2.4表达式和语句31
2.4.1返回值31
2.4.2嵌套31
2.4.3优先级第3章数据类型36
3.1数据及操作36
3.2C++数据类型36
3.3数据类型37
3.3.1数据在计算机中的存储37
3.3.2基本数据类型的修饰符号38
3.3.3基本数据类型39
3.3.4C++中的特殊字符41
3.3.5字符串42
3.3.6数据类型长度的确定42
3.3.7数据类型的选择43
3.4构造数据类型44
3.4.1数组44
3.4.2枚举44
3.4.3结构46
3.5数据输入46
小结48
第4章程序流程控制50
4.1复合语句50
4.2程序的执行流程51
4.3分支流程51
4.3.1if语句52
4.3.2switch语句55
4.4循环流程57
4.4.1while语句58
4.4.2do…while语句62
4.4.3for循环65
4.5设计举例68
4.6其他控制语句73
4.6.1break语句与多重循环73
4.6.2goto语句74
4.6.3条件运算符?:74
小结75
第5章函数77
5.1函数机制77
5.2函数定义78
5.2.1函数名79
5.2.2函数参数79
5.2.3返回类型80
5.2.4函数体80
5.3函数调用82
5.4程序运行时的内存分布83
5.5函数调用的实现机制84
5.6函数的参数与返回值88
5.7函数参数的传递方式88
5.7.1指针参数88
5.7.2引用参数90
5.7.3数组参数92
5.7.4数组参数对实在参数的改变94
5.7.5字符串作为参数94
5.7.6多维数组作为参数96
5.7.7main( )的参数97
5.8函数返回值98
5.9const参数、const返回值与const函数100
5.9.1const参数100
5.9.2const返回值101
5.10作用域102
5.10.1局部作用域103
5.10.2文件作用域104
5.10.3覆盖问题106
5.11函数原型109
5.11.1函数作用域109
5.11.2函数原型110
5.11.3函数原型的作用110
5.11.4使用自己定义的函数原型115
5.12特殊的函数用法115
5.12.1内联函数115
5.12.2内联函数的作用115
5.12.3内联函数使用的限制116
5.12.4函数重载116
5.12.5使用函数重载的条件117
5.12.6重载函数的使用方法117
5.12.7函数的默认参数118
5.12.8递归函数120
5.12.9设计递归程序的方法121
5.12.10递归程序的优缺点123
5.12.11函数模板123
5.12.12模板的实例化125
5.12.13支持多种类型的模板126
5.12.14使用模板的注意事项127
小结127
第6章简单程序设计129
6.1程序开发过程129
6.2文件之间的信息共享130
6.2.1外部变量130
6.2.2外部函数132
6.2.3静态全局变量与静态函数133
6.3头文件135
6.3.1#include指令135
6.3.2头文件内容136
6.3.3预编译指令138
6.4生存期141
6.4.1生存期与内存142
6.4.2初始化问题143
6.4.3局部静态变量143
小结144
第7章数组与结构146
7.1数组146
7.1.1数组的定义146
7.1.2数组元素的访问147
7.1.3数组复制149
7.1.4数组下标越界149
7.1.5数组元素的初始化150
7.1.6多维数组151
7.1.7多维数组元素的访问151
7.1.8多维数组元素的初始化156
7.1.9字符串数组156
7.1.10数组应用举例158
7.2结构162
7.2.1结构类型的定义162
7.2.2结构成员的访问163
7.2.3结构变量的初始化163
7.2.4结构的赋值164
7.2.5结构成员166
7.2.6结构嵌套167
小结167
第8章指针及其引用169
8.1指针的定义与初始化169
8.2指针的赋值与使用171
8.3指针的数据类型174
8.3.1void指针*176
8.3.2NULL指针值176
8.4用const来限定指针177
8.4.1指向常量的指针177
8.4.2指针常量178
8.4.3指向常量的指针常量178
8.5指针与数组179
8.5.1指针运算181
8.5.2用指针对数组操作183
8.5.3指针与字符串184
8.6动态内存申请185
8.6.1new与delete186
8.6.2指针与动态数组189
8.6.3指针与动态结构194
8.6.4指针小结201
8.7引用的概念201
8.7.1引用的初始化202
8.7.2能够引用的数据类型203
8.7.3const引用204
8.8指针和引用205
8.9引用的应用206
小结206
第9章面向对象程序方法复用——软件快速开发的必由之路218
9.3.3走面向对象的道路218
9.3.4结构化程序设计219
9.3.5面向对象程序设计220
9.4面向对象的分析与设计221
9.4.1面向对象开发方法的生命周期221
9.4.2面向对象分析221
9.4.3面向对象设计222
9.5面向对象方法与软件复用222
9.5.1复用级别222
9.5.2复用的好处223
9.5.3面向对象方法对复用的支持223
9.5.4复用技术对面向对象软件开发的支持224
9.6面向对象程序设计语言224
小结225
第10章类与对象226
10.1类的定义与使用226
10.2成员的访问控制227
10.3类的成员函数231
10.3.1成员函数的定义位置231
10.3.2类作用域232
10.3.3内联成员函数与非内联成员函数235
10.3.4使用内联函数的条件236
10.3.5const成员函数238
10.4类定义与头文件240
10.4.1使用类库中的类243
10.4.2类与程序结构244
10.5对象的创建与使用245
10.5.1对象的创建245
10.5.2对象作为函数的参数与返回值246
10.6this指针247
10.7类与结构的关系250
10.8举例252
10.8.1用数组实现的队列类253
10.8.2用链表实现的队列类259
小结265
第11章构造函数与析构函数267
11.1构造函数和析构函数的意义267
11.2构造函数270
11.2.1重载构造函数270
11.2.2对象构造的几种方式274
11.2.3构造函数的默认参数274
11.2.4默认构造函数275
11.2.5拷贝构造函数277
11.2.6成员初始化参数表280
11.3析构函数285
小结295
第12章静态成员、友元297
12.1静态成员297
12.1.1静态数据成员与静态函数成员298
12.1.2静态数据成员的初始化299
12.2友元306
12.2.1友元的说明与使用306
12.2.2使用友元的条件311
12.2.3使用友元的注意事项311
小结313
第13章运算符重载314
13.1可以重载的运算符314
13.2运算符重载的规则316
13.3常用运算符重载举例319
13.3.1函数调用运算符的重载320
13.3.2赋值运算符的重载323
13.3.3双目算术运算符的重载325
13.3.4单目算术运算符的重载327
13.3.5自增自减运算符的重载328
13.4插入抽取运算符的重载337
13.4.1C++的I/O流库338
13.4.2插入运算符的重载339
13.4.3抽取运算符的重载341
13.5类型转换函数345
13.5.1构造函数充当类型转换函数346
13.5.2直接定义类型转换函数347
13.5.3隐式类型转换与显式类型转换349
小结350
第14章继承352
14.1单继承352
14.1.1公有、保护和私有继承354
14.1.2派生类对象的构造361
14.1.3继承应用举例368
14.2多继承372
14.2.1多继承的定义373
14.2.2多继承中的构造函数与析构函数373
14.2.3二义性376
14.2.4虚基类379
14.2.5虚基类的初始化380
14.2.6多继承的应用381
14.3继承与类库381
14.4Visual C++的类库——MFC382
小结383
自测题答案384
参考文献421