第1章 绪论 1
1.1 传统的软件开发方法简述 1
1.2 面向对象程序设计方法简述 3
1.3 面向对象程序设计语言简介 4
习题一 5
第2章 面向对象程序设计方法导论 6
2.1 面向对象的基本概念 6
2.1.1 对象 6
2.1.3 实例 7
2.1.2 类 7
2.1.4 消息 8
2.1.5 封装性 8
2.1.6 继承性 9
2.1.7 多态性 10
2.1.8 联编 11
2.2 面向对象模型 12
2.2.1 面向对象建模 12
2.2.2 对象模型 12
2.3 面向对象的软件开发 17
2.3.1 面向对象分析 18
2.3.2 面向对象设计 19
2.3.3 面向对象实现 20
习题二 21
第3章 C++对C常规性能的扩充 22
3.1 基本输入流和输出流类 22
3.2 变量 23
3.2.1 变量的定义方法 23
3.2.2 作用域限定运算符 24
3.2.3 枚举类型 24
3.2.5 const类型限定符 25
3.2.4 结构体类型 25
3.2.6 函数形式的类型转换 27
3.3 引用类型 27
3.3.1 变量或对象的别名 28
3.3.2 函数的引用类型参数 28
3.3.3 函数的引用类型返回值 31
3.4 函数 33
3.4.1 函数原型 33
3.4.2 内联函数 34
3.4.3 带缺省参数的函数 34
3.4.4 函数名重载 35
3.5 new和delete 运算符 37
3.6 行注释 38
习题三 38
第4章 类和对象 40
4.1 类的定义 40
4.2 数据成员 42
4.3 成员函数 42
4.3.1 构造函数 43
4.3.2 析构函数 46
4.3.3 其它成员函数 48
4.4 对象 52
4.5 对象数据成员 54
4.5.1 类嵌套和子对象 54
4.5.2 外层类的构造函数 56
4.6 static成员 58
4.7 自引用对象指针this 60
4.8 设计举例 61
4.8.1 动态顺序表类的设计 61
4.8.2 单链表类的设计 65
习题四 69
5.1 友元的概念 72
第5章 友元 72
5.2 友元类 73
5.3 友元函数 75
5.4 友元成员函数 81
习题五 82
第6章 重载 84
6.1 成员函数重载 84
6.1.1 构造函数重载 84
6.1.2 其它成员函数重载 86
6.2 函数重载 86
6.3 运算符重载 88
6.3.1 重载为类的成员函数 89
6.3.2 重载为类的友元函数 92
6.3.3 两种运算符重载方法的比较 94
6.4 设计举例 95
6.4.1 数组类的设计 95
6.4.2 字符串类的设计 99
习题六 104
第7章 继承 106
7.1 基类、派生类和保护成员 106
7.1.2 派生类的三种继承方式 107
7.1.1 派生类的定义格式 107
7.1.3 派生类与基类的关系 111
7.2 单重继承 111
7.2.1 派生类对象的数据成员 112
7.2.2 派生类的构造函数 113
7.2.3 派生类的析构函数 116
7.2.4 基类和派生类的赋值兼容规则 117
7.2.5 派生类对基类成员函数的重载 119
7.3.1 多重继承的意义 120
7.3 多重继承 120
7.3.2 多重继承的方法 121
7.3.3 多重继承的二义性问题 121
7.4 虚基类 125
7.5 设计举例 127
7.5.1 链式堆栈类——私有继承举例 127
7.5.2 中序线索二叉树类——公有继承举例 129
习题七 136
第8章 运行时的多态性 138
8.1 滞后联编和运行时的多态性 138
8.2.1 虚函数的定义和使用方法 139
8.2 虚函数 139
8.2.2 虚函数和成员函数重载的区别 141
8.2.3 虚析构函数 142
8.2.4 空的虚函数 144
8.3 纯虚函数和抽象类 145
8.4 设计举例 146
8.4.1 异质单链表类——虚函数举例 147
8.4.2 线索二叉树类——抽象类举例 153
习题八 154
9.1 参数多态性问题和常规解决方法 156
第9章 模板 156
9.2 模板 159
9.3 函数模板 160
9.4 类模板 162
9.4.1 类模板的设计方法 162
9.4.2 类模板的友元 164
习题九 166
第10章 并发和并发程序设计 168
10.1 并发和并发对象 168
10.1.1 并发的基本概念 168
10.1.3 面向对象的并发方案 169
10.1.2 对象的技术特点 169
10.1.4 并发对象 171
10.2 并发程序设计的基本问题 171
10.3 进程和线程 173
10.3.1 进程 173
10.3.2 线程 175
10.3.3 进程与线程的比较 180
10.4 并发与同步 181
10.4.1 为什么需要同步 181
10.4.2 同步对象 183
10.5 多线程示例 194
习题十 201
第11章 I/O流库 202
11.1 C++流库结构 202
11.2 基本数据类型的输入/输出 204
11.2.1 istream类 204
11.2.2 ostream类 207
11.3 格式控制 209
11.3.1 ios类以及格式控制成员函数 209
11.3.2 操作符 211
11.4 文件的读/写 213
11.4.1 ifstream类和ofstream类和fstream类 214
11.4.2 文本文件流的读/写 215
11.4.3 二进制文件流的读/写 218
11.5 用户自定义类型的输入/输出 220
11.5.1 重载输出运算符和输入运算符 221
11.5.2 可流类 223
习题十一 226
第12章 Visual C++开发环境简介 227
12.1 Windows编程模式 227
12.2 Visual C++可视化集成开发环境 230
12.3 MFC和应用程序框架 234
12.3.1 MFC类库组成 234
12.3.2 应用程序框架 235
12.4 基于MFC程序设计的基本方法 236
12.4.1 一个Windows风格程序设计实例 236
12.4.2 AppWizard创建文件的说明 241
12.4.3 应用程序执行的基本机制 242
12.4.4 标识符命名方法 244
习题十二 245
参考文献 246