第1章 Visual C+++ 4.2简介 1
1.1 Visual C+++ 4.2的新特点 2
1.1.1 集成开发环境 2
1.1.2 新的MFC类库 3
1.1.3 编译链接速度更快 4
1.1.4 友好的连机帮助 5
1.2 Visual C+++ 4.2下应用程序开发方法 5
1.2.1 创建工程文件 6
1.2.2 文件编辑 7
1.2.3 构造应用程序 8
1.2.4 执行和调试程序 9
1.3 C+++程序基本结构 12
1.3.1 实例 12
1.3.2 注释 12
1.3.3 main()函数 13
1.3.4 头文件 13
1.4 VC+++4.2编程环境中的各项命令 13
1.4.1 File(文件)命令 13
1.4.2 Edit(编辑)命令 14
1.4.3 View(视图)命令 14
1.4.6 Tools(工具)命令 15
1.4.5 Build(创建)命令 15
1.4.4 Insert(插入)命令 15
1.4.7 Windows(窗口)命令 16
1.4.8 Help(帮助)命令 16
第2章 C+++基础知识 18
2.1 基本输入/输出 18
2.1.1 传统的输入输出方法 18
2.1.2 C+++输入输出 20
2.2 变量 20
2.2.1 变量定义 21
2.2.2 变量数据类型 21
2.2.3 类型的自动转换和强制转换 23
2.2.4 const变量 24
2.3 存储类 24
2.3.1 自动变量 24
2.3.2 外部变量 25
2.3.3 静态变量 27
2.3.4 寄存器变量 27
2.4 用户自定义数据类型 28
2.4.1 数组 28
2.4.2 结构 29
2.4.3 联合 31
2.4.5 typedef 33
2.4.4 枚举 33
2.5 指针 34
2.5.1 指针定义 34
2.5.2 指针运算 35
2.5.3 指向函数的指针 36
2.6 语句 38
2.6.1 操作符和表达式 38
2.6.2 条件语句 41
2.6.3 开关语句 43
2.6.4 循环语句 45
2.6.5 跳转语句 48
2.7 函数 51
2.7.1 函数定义 51
2.7.2 参数传递 52
2.7.3 函数缺省参数 55
2.7.4 inline函数 56
2.8 练习 57
第3章 类与数据封装 58
3.1 类定义 58
3.2 数据封装 59
3.2.1 类私有成员 60
3.3 成员函数 61
3.2.2 类公有成员 61
3.3.1 成员函数定义 62
3.3.2 inline成员函数 62
3.4 构造函数 63
3.4.1 构造函数定义 63
3.4.2 用构造函数传递参数 64
3.5 析构函数 65
3.6 类静态成员 67
3.6.1 静态数据成员定义 67
3.6.2 静态成员函数 68
3.7.1 友员函数 69
3.7 类的友员 69
3.7.2 友员类 70
3.8 this指针 71
3.9 类与结构 72
3.10 练习 74
第4章 继承 75
4.1 基础类与派生类 75
4.2 类继承下的数据隐藏 76
4.2.1 类的保护成员 76
4.2.2 公用基类和私有基类 77
4.3 多重继承 80
4.3.1 多重继承的定义方法 80
4.3.2 多重继承下的不确定性 81
4.4 多层继承 82
4.5.1 派生类构造函数设计 85
4.5 派生类的构造函数与析构函数 85
4.5.2 构造函数的调用顺序 87
4.6 练习 89
第5章 重载 91
5.1 函数重载 91
5.1.1 函数重载的作用 91
5.1.2 函数重载时应注意的问题 92
5.1.3 类成员函数重载 93
5.2.1 重载操作符的定义 95
5.2 操作符重载 95
5.2.2 重载操作符作为成员函数 97
5.2.3 重载操作符作为友员函数 101
5.3 通过重载实现类的类型转换 103
5.3.1 将类的类型转换为其它数据类型 103
5.3.2 将其它数据类型转换为类的类型 104
5.3.3 不同类的类型之间的转换 106
5.3.4 派生类与基类之间的转换 108
5.4 练习 111
6.1 静态连接与动态连接 112
第6章 虚拟函数与多态性 112
6.2 虚拟函数 113
6.2.1 虚拟函数定义 114
6.2.2 虚拟函数的调用 115
6.2.3 虚拟函数与重载函数 121
6.2.4 虚拟析构函数 121
6.2.5 虚拟函数的数据封装 123
6.3 纯虚拟函数 124
6.4 虚拟基类 127
6.4.1 虚拟基类定义 128
6.4.2 虚拟基类的构造函数调用 129
6.5 虚拟函数的继承 132
6.5.1 虚拟函数具有继承性 132
6.5.2 派生类直接调用基类中的虚拟函数 134
6.6 练习 135
第7章 I/O流与文件操作 136
7.1 VC+++流类结构 136
7.2 操纵符与格式控制 137
7.2.1 dec、oct、hex 137
7.2.2 flush、endl、ends 138
7.2.3 setw(int)、setfill(int) 139
7.3 ios类成员的应用 140
7.3.1 格式控制 140
7.2.4 setprecision(int) 140
7.2.5 setiosflags(long)、resetiosflags(long) 140
7.3.2 流错误处理 146
7.3.3 其它成员函数 148
7.4 ostream类与输出 149
7.5 istream类与输入 150
7.6 文件管理 153
7.6.1 打开文件与关闭文件 153
7.6.2 文件随机存取 154
7.6.3 文件错误处理 157
7.6.4 DOS设备文件 158
7.7.1 输出运算符 159
7.7 输出运算符和输入运算符的重载 159
7.7.2 输入运算符 161
7.8 练习 163
第8章 模板、异常错误处理 169
8.1 什么是模板 169
8.2 函数模板 169
8.2.1 函数模板定义 169
8.2.2 特殊数据类型处理 172
8.3 类模板 172
8.3.1 类模板的定义 173
8.3.2 类模板应用实例 174
8.4.1 VC+++异常处理 176
8.4 异常错误处理 176
8.4.2 结构化异常处理 181
8.5 练习 183
第9章 VC+++应用程序设计 184
9.1 移植16位应用程序到32位Windows环境 184
9.1.1 修改Windows过程定义 184
9.1.2 删除near和far类型定义 185
9.1.3 使用正确的数据类型 185
9.1.4 修改消息参数 186
9.2 使用MFC设计Windows应用程序 187
9.2.1 MFC应用程序中的对象 187
9.2.2 用MFC建立Windows应用程序 188
9.2.3 使用AppWizard构造应用程序 192
9.2.4 创建文档 194
9.2.5 建立视图 199
9.2.6 增加用户资源 201
9.3 数据库访问 208
9.3.1 ODBC应用程序的访问过程 208
9.3.2 SQL语言 210
9.3.3 应用实例 211
附录1 习题答案 214
附录2 源程序代码 236
参考文献 262