第1章 面向对象程序设计概述
1.1 面向对象程序设计1
1.1.1 面向过程程序设计1
1.1.2 面向对象程序设计2
1.2 对象和类4
1.2.1 对象和类的概念4
1.2.2 消息5
1.3 数据的抽象和封装6
1.3.1 基本概念6
1.3.2 对象的特点7
1.4 继承性8
1.4.1 继承的概念8
1.4.2 继承的分类9
1.5 多态性10
1.5.1 多态性的概念10
1.5.2 多态性的分类11
习 题 112
第2章 C++概述
2.1 C++的构成和特点13
2.1.1 C++的构成13
2.1.2 C++的特点14
2.2 C++源程序的结构15
2.2.1 C++程序的格式15
2.2.2 C++程序的特点15
2.2.3 C++程序的编辑、编译和运行19
2.3 C++的词汇、基本数据类型、常量和变量21
2.3.1 C++的词汇21
2.3.2 C++的基本数据类型22
2.3.3 C++常量和变量23
2.4 基本运算符、表达式与语句24
2.4.1 算术运算符和算术表达式24
2.4.2 关系运算符和关系表达式26
2.4.3 逻辑运算符和逻辑表达式27
2.4.4 位运算符和位运算表达式27
2.4.5 赋值运算符和赋值表达式28
2.4.6 条件运算符和条件表达式29
2.4.7 逗号运算符和逗号表达式31
2.4.8 语句31
2.5 基本输入、输出(cin,cout)32
2.5.1 基本输入cin33
2.5.2 基本输出cout34
2.6 程序控制结构35
2.6.1 顺序结构35
2.6.2 选择结构37
2.6.3 循环结构40
2.6.4 转向语句45
习 题 246
第3章 函数
3.1 函数的定义和调用48
3.1.1 函数的定义48
3.1.2 函数的调用49
3.1.3 函数的声明49
3.2 函数参数的传递51
3.2.1 值传递51
3.2.2 指针传递54
3.2.3 引用传递56
3.3 函数的调用机制61
3.3.1 嵌套调用61
3.3.2 递归调用64
3.4 内联函数和重载函数65
3.4.1 内联函数65
3.4.2 重载函数67
3.5 带默认参数的函数69
3.6 存储类71
3.6.1 变量存储类71
3.6.2 函数存储类75
3.7 编译预处理75
3.7.1 宏定义76
3.7.2 文件包含78
3.7.3 条件编译78
习 题 380
第4章 指针
4.1 指针及指针变量84
4.1.1 指针的概念84
4.1.2 指针变量85
4.1.3 指针可进行的运算87
4.2 指针与数组89
4.2.1 用指针访问数组元素89
4.2.2 指针与字符串91
4.2.3 指针数组、数组指针和多级指针93
4.3 指针与函数96
4.3.1 指针作为函数参数96
4.3.2 数组名作函数参数97
4.3.3 函数指针99
4.3.4 带参数的main函数102
4.4 new与delete103
4.4.1 new与delete运算符104
4.4.2 动态存储的应用106
4.5 简单链表及其应用 109
习 题 4118
第5章 类与对象
5.1 类与对象的基本概念119
5.1.1 类的定义119
5.1.2 对象的定义122
5.1.3 访问对象成员122
5.1.4 类的作用域125
5.2 构造函数和析构函数125
5.2.1 构造函数125
5.2.2 析构函数127
5.2.3 重载构造函数131
5.2.4 拷贝构造函数132
5.3 对象数组与对象指针137
5.3.1 对象数组137
5.3.2 对象指针139
5.4 向函数传递对象142
5.4.1 对象作为函数参数143
5.4.2 对象指针作为函数参数143
5.4.3 对象引用作为函数参数143
5.5 静态成员145
5.5.1 静态数据成员146
5.5.2 静态成员函数148
5.6 友元149
5.6.1 友元函数149
5.6.2 友元类151
5.7 类对象作为类成员155
5.8 常类型156
5.8.1 常引用156
5.8.2 常对象成员157
习 题 5158
第6章 继承与派生类
6.1 继承与派生160
6.1.1 基本概念160
6.1.2 派生类的声明161
6.1.3 访问控制162
6.2 派生类的构造函数与析构函数166
6.2.1 派生类构造函数的定义和初始化166
6.2.2 派生类的析构函数166
6.2.3 派生类构造函数和析构函数的执行顺序168
6.3 多重继承170
6.3.1 多重继承的声明170
6.3.2 多重继承的构造函数和析构函数171
6.3.3 虚基类174
6.3.4 赋值兼容原则180
习 题 6181
第7章 多态性
7.1 C++中多态性的概念182
7.2 函数和运算符重载182
7.2.1 一般函数重载183
7.2.2 运算符重载186
7.3 虚函数199
7.3.1 虚函数的定义201
7.3.2 虚函数和基类指针202
7.3.3 纯虚函数和抽象类208
7.4 应用举例212
习 题 7225
第8章 模板与异常处理
8.1 模板的概念229
8.2 函数模板与类模板230
8.2.1 函数模板与模板函数230
8.2.2 重载函数模板232
8.2.3 类模板与模板类236
8.2.4 类模板作为函数参数241
8.3 异常处理245
8.3.1 C++的异常处理机制246
8.3.2 异常处理的实现246
习 题 8251
第9章 C++的I/O流类库
9.1 流和流类库256
9.1.1 流256
9.1.2 流类库257
9.2 标准流的输入输出259
9.2.1 无格式输入/输出259
9.2.2 有格式控制的输入/输出260
9.3 输入/输出运算符的重载270
9.3.1 重载输出运算符“>”270
9.4 文件处理274
9.4.1 文件的打开和关闭275
9.4.2 文件的读写277
习 题 9288
第10章 实验指导
10.1 实验一 Visual C++ 6.0开发环境的使用292
10.2 实验二 程序控制结构299
10.3 实验三 函数302
10.4 实验四 指针305
10.5 实验五 类与对象307
10.6 实验六 继承与派生类315
10.7 实验七 多态性317
10.8 实验八 模板与异常处理319
10.9 实验九 文件322
参考文献