第1章 面向对象基础 1
1.1 问题领域的抽象 1
1.1.1 面向过程的抽象 1
1.1.2 面向对象的抽象 2
1.1.3 面向过程与面向对象的关系 3
1.2 面向对象概述 3
1.2.1 封装和数据隐藏 4
1.2.2 继承和重用 4
1.2.3 多态 4
1.3 C++基础知识 5
1.3.1 C++的历史 5
1.3.2 简单的C++程序介绍 5
1.3.3 C++上机实践 6
第2章 类的封装 10
2.1 定义类与创建对象 10
2.1.1 类和对象的关系 10
2.1.2 类的定义 10
2.1.3 创建对象 16
2.2 构造函数和析构函数 19
2.2.1 构造函数 19
2.2.2 默认构造函数与带默认参数的构造函数 21
2.2.3 带参数的构造函数 22
2.2.4 构造函数的重载 23
2.2.5 拷贝构造函数 24
2.2.6 析构函数 26
2.3 对象的存储 29
2.3.1 作用域 29
2.3.2 对象的存储类 36
2.3.3 动态存储分配 38
2.4 对象数组与字符串对象 41
2.4.1 对象数组 41
2.4.2 字符串对象 44
2.5 友元 50
2.5.1 友元函数 51
2.5.2 友元成员 52
2.5.3 友元类 53
习题 54
第3章 类的继承 57
3.1 类的层次与继承关系 57
3.2 子类的定义和成员构成 61
3.2.1 子类的定义 61
3.2.2 子类成员的构成 64
3.3 子类的构造、析构函数 65
3.3.1 单继承的派生类的构造函数和析构函数 65
3.3.2 多继承派生类的构造函数和析构函数 70
3.3.3 派生关系中的二义性问题 73
3.4 子类访问权限控制 76
3.4.1 公有继承 76
3.4.2 私有继承 78
3.4.3 保护继承 80
3.5 继承的应用实例 83
习题 87
第4章 类的多态 90
4.1 多态问题的起源与基本概念 90
4.2 静态绑定 94
4.3 虚函数 97
4.3.1 虚函数的声明 97
4.3.2 虚函数的使用 97
4.4 动态绑定 98
4.4.1 动态绑定与虚函数表 99
4.4.2 Overload与Override 101
4.4.3 虚函数的一些说明 101
4.4.4 虚析构函数 101
4.5 纯虚函数与抽象类 103
4.5.1 纯虚函数 103
4.5.2 抽象类 104
4.5.3 面向对象程序设计的基本原则 104
4.6 多态的应用实例 105
习题 109
第5章 运算符重载与输入输出流 111
5.1 运算符重载基本概念 111
5.1.1 解决实际问题 111
5.1.2 运算符重载基本知识 114
5.1.3 运算符重载为成员函数 115
5.2 运算符重载的应用 116
5.2.1 自增运算符++的重载 116
5.2.2 逻辑相等运算符==的重载 118
5.2.3 赋值运算符=的重载 119
5.3 C++标准输入/输出流 120
5.3.1 I/O流类库特点 120
5.3.2 I/O流类库基本概念与结构 121
5.3.3 无格式输入/输出 123
5.3.4 带格式输入/输出 124
5.3.5 重载输入/输出流应用 127
5.4 面向文件的输入/输出流 128
5.4.1 文件输入/输出基本知识 128
5.4.2 文件的打开和关闭 129
5.4.3 文本文件 131
5.4.4 二进制文件 135
5.4.5 文件的随机读写 136
习题 138
第6章 异常处理 139
6.1 异常的基本概念 139
6.2 C++异常处理机制 141
6.2.1 基本类型的异常 141
6.2.2 异常的传播 142
6.2.3 异常类与自定义类的异常 143
习题 146
第7章 MFC编程基础 148
7.1 MFC概述 148
7.1.1 简介 148
7.1.2 如何学习MFC 150
7.1.3 Windows编程基础 151
7.1.4 MFC基础类及其层次结构 156
7.2 Visual C++6.0集成开发环境与工程概念 162
7.2.1 Visual C++6.0特点与安装 162
7.2.2 VC++6.0工作环境 171
7.2.3 VC++工程管理 175
7.2.4 资源与资源管理器 176
7.3 应用程序框架 178
7.3.1 第一个MFC程序 178
7.3.2 为程序添加代码 184
7.3.3 分析Hello程序 187
习题 197
第8章 GUI图形界面消息处理 198
8.1 Windows应用程序消息循环基础 198
8.1.1 消息与消息结构 198
8.1.2 消息的3种类型 199
8.1.3 消息的发送与处理 201
8.2 MFC消息映射 204
8.2.1 ClassWizard 204
8.2.2 消息映射的建立与处理 214
8.2.3 处理用户自定义消息 224
8.3 常用Windows消息 225
8.3.1 键盘消息 225
8.3.2 鼠标消息 228
8.3.3 其他系统消息 231
习题 232
第9章 基于对话框的MFC应用 233
9.1 基于对话框的MFC应用简介 233
9.1.1 对话框模板 233
9.1.2 对话框与CDialog类 236
9.1.3 对话框的类型 237
9.1.4 消息对话框 237
9.1.5 编写对话框的流程 238
9.2 模式对话框和CDialog类 238
9.2.1 OK按钮和Cancel按钮 239
9.2.2 模式对话框的调用 239
9.2.3 对话框的消息处理 243
9.2.4 对话框的数据交换和数据校验 245
9.3 Windows通用基本控件 247
9.3.1 按钮控件 248
9.3.2 文本框 251
9.3.3 进度条控件 253
9.3.4 数值调节控件 253
9.3.5 图像列表控件 255
9.3.6 列表视图控件 256
9.3.7 树视控件 262
9.4 无模式对话框的应用 265
9.5 基于对话框的MFC应用实例 267
习题 271
第10章 基于文档/视图的MFC应用 272
10.1 文档/视图基础知识 272
10.1.1 文档/视图的基本概念 272
10.1.2 单文档结构中的对象及其相互关系 273
10.2 单文档界面的应用程序对象 275
10.2.1 应用程序对象和WinMain函数 275
10.2.2 MFC框架中应用程序对象的InitInstance函数 276
10.3 单文档界面的文档对象 277
10.3.1 CArray类 277
10.3.2 利用文档对象的Serialize成员函数实现数据的输入和输出 279
10.4 单文档界面的框架窗口对象 282
10.4.1 框架窗口对象的OnCreate函数 282
10.4.2 框架窗口容纳多个视图 283
10.5 单文档界面的视图对象 284
10.6 基于文档/视图的MFC应用实例 286
习题 291
第11章 组件对象模型 292
11.1 COM技术背景 292
11.2 COM对象原理 293
11.2.1 COM中的接口 293
11.2.2 COM组件基础 294
11.2.3 基本工作原理 295
11.2.4 COM对象的创建和删除 300
11.3 COM组件库与注册表 303
11.3.1 COM组件库位置无关性 303
11.3.2 注册表中COM相关信息 303
11.4 COM组件应用 305
习题 307
参考文献 308