1.1 重载 1
1.1.1 函数重载和默认参数 1
第1章 C++知识回顾 1
1.1.2 重载与名字支配规律的区别 2
1.1.3 运算符重载 3
1.1.4 友元运算符、类运算符及其参数 6
1.2 模板 7
1.2.1 函数模板及其显式调用规则 7
1.2.2 模板函数专门化和模板重载 8
1.2.3 类模板 10
1.2.4 类模板的专门化 13
1.3.1 静态联编中的赋值兼容性及名字支配规律 15
1.3 虚函数和多态性 15
1.3.2 动态联编的多态性 17
1.3.3 虚函数的定义 19
1.3.4 虚函数实现多态性的条件 19
1.3.5 进一步探讨虚函数与实函数的区别 20
1.3.6 纯虚函数与抽象类 23
1.3.7 多重继承与虚基类 26
1.4 函数指针和类成员指针 31
1.4.1 函数指针 31
1.4.2 指向类成员的指针 35
1.5.1 使用举例 38
1.5 静态成员 38
1.6 分类、聚合和嵌套 41
1.5.2 静态成员在MFC中的角色 41
实验1 虚函数的多态性 44
习题1 44
第2章 Windows程序的基本风格 45
2.1 一个简单的Windows程序 45
2.1.1 手工编制一个简单的Windows程序 45
2.1.2 Windows的程序结构 49
2.1.3 WinMain函数 52
2.1.4 WndProc函数 57
2.3 Windows程序编程特点分析 58
2.2 Windows示例程序的执行过程 58
实验2 编制一个简单的Windows程序 61
习题2 61
第3章 Windows程序的消息处理 62
3.1 一个使用菜单的程序 62
3.1.1 Windows程序的组成 62
3.1.2 使用菜单资源 63
3.2 程序文件 68
3.2.1 程序的资源文件和头文件 68
3.2.2 主程序 69
3.2.3 窗口函数 70
3.2.4 使用资源程序的组织原理图 71
3.3 菜单命令处理的新思路 71
3.4 再探消息处理 75
实验3 使用消息映像表处理消息 78
习题3 78
第4章 自动生成与消息处理 79
4.1 使用预定格式自动产生一个程序 79
4.2 改造程序结构 81
4.2.1 修改头文件 81
4.2.2 编制Wnd4Proc.cpp文件 82
4.2.3 改编wnd4.cpp文件 83
4.3 添加新的功能 86
4.3.1 查看菜单资源及其文件内容 86
4.3.2 添加菜单 87
4.3.3 增加菜单消息处理 88
4.3.4 修改对话框窗口函数 89
4.4 使用model对话框 90
4.5 其他资源 92
4.6 改变消息处理方法 92
实验4 练习多文件编程 95
习题4 96
5.1 一个使用全局对象的程序 97
第5章 使用MFC类库编程 97
5.2 使用MFC编制Win32 Application程序 98
5.2.1 Hello MFC 98
5.2.2 简单分析 100
5.3 模拟文档/视结构的MFC程序 104
5.3.1 程序清单 105
5.3.2 多文件中的消息映射 108
5.3.3 资源文件 110
5.3.4 单文档模板 111
5.3.5 动态创建 112
5.4.1 自动生成文档/视结构实例 113
5.4 MFC类库与编程向导AppWizard 113
5.4.2 MFC和Application Framework 115
5.4.3 MFC概貌 116
5.4.4 向导提供的程序风格 122
5.5 基于对话框风格的设计实例 123
5.5.1 界面设计 123
5.5.2 设置成员变量 124
5.5.3 增加消息处理函数 124
实验5 将两个字符串拼接后输出 126
习题5 126
第6章 MFC文档/视结构 128
6.1 MFC单文档应用程序结构 128
6.2 文档对象 130
6.3 视的对象 132
6.4 文档和视的联系 135
6.4.1 逻辑关系 135
6.4.2 调用关系 135
6.4.3 配合实例 136
6.5 框架窗口 137
6.6 文档模板 138
6.7 分析单文档应用程序 142
6.7.1 应用程序类CTestApp 142
6.7.2 文档类CTestDoc 143
6.7.3 视类CTestView 143
6.7.5 对话框类CAboutDlg 144
6.7.4 框架窗口类CMainFrame 144
6.7.6 工具栏和状态栏 145
6.7.7 标准菜单 146
6.8 创建单文档应用程序实例 147
6.9 多文档应用程序简介 150
6.9.1 MDI的三位一体创建流程 150
6.9.2 MDI的菜单 152
6.9.3 创建MDI应用程序 153
6.10 消息处理映射规则 153
6.11 各对象之间关系综述 154
6.12 本章小结 155
习题6 156
实验6 输出三角形3条边长并显示其图形 156
第7章 基于对话框的设计实例 157
7.1 统计中英文字符 157
7.1.1 产生工程并设计界面 157
7.1.2 设置对象的成员变量 158
7.1.3 增加消息处理函数 159
7.1.4 添加代码 160
7.2 连接两个字符串 161
7.2.1 设计界面和成员变量 161
7.2.2 设置消息处理函数 162
7.3.2 添加函数和消息处理 164
7.3.1 设计界面 164
7.3 获得主机名和IP地址 164
7.4 计算三角形边长的程序 167
7.4.1 创建工程及界面 167
7.4.2 添加成员变量 168
7.4.3 消息处理 168
7.4.4 编译运行程序 170
7.5 RM文件播放器 170
7.5.1 创建工程及界面 170
7.5.2 使用RealAudio类 172
7.5.3 创建播放器 172
7.5.4 设计播放器菜单 173
7.5.5 设置菜单资源 174
7.5.6 运行结果 175
7.6 本章小结 176
实验7 RM文件播放器 177
习题7 177
第8章 单文档设计实例 178
8.1 简单的数值输出和画图实例 178
8.2 使用计算数据画直方图实例 179
8.3 计算三角形问题 181
8.3.1 创建工程及界面 181
8.3.2 添加成员变量 182
8.3.3 设计消息处理函数 183
8.3.4 设置初始化函数 185
8.3.5 文档初始化 185
8.3.6 实现文档类的Serialize函数 186
8.3.7 运行实例 186
8.4 播放WAV文件 187
8.4.1 生成工程 187
8.4.2 设计文件 187
8.4.3 设计菜单 191
8.4.4 修改CMainFrame类 192
8.4.5 添加winmm.lib 195
实验8 音频播放器 196
习题8 197
第9章 多文档设计实例 198
9.1 可滚动的多文档实例 198
9.1.1 设计思想 199
9.1.2 设计实现 200
9.2 不同类型文档的实例 206
9.2.1 增加新的文档模板 207
9.2.2 编程实现其他函数 210
9.2.3 编译运行程序 211
实验9 扩充本章程序的功能 213
习题9 213
10.2 建立工程 214
10.1 设计要求 214
第10章 课程设计 214
10.3 添加Student类及其成员函数实现 215
10.4 添加“增加记录”对话框资源 227
10.5 添加“删除记录”对话框资源 232
10.6 添加“查找记录”对话框资源 236
10.7 添加菜单资源 241
10.8 其他说明 249
10.9 运行演示 250
附录A 以CObject为直接基类的派生类图 253
附录B CCmdTarget类的派生类图 254
参考文献 255