第1章 C++基础 1
1.1一个简单的C++程序 1
目 录 1
1.2 C++标识符与关键字 2
1.2.1标识符 2
1.2.2关键字 2
1.3 C++的数据类型 3
1.3.1 char类型 3
1.3.2类型short 3
1.3.3类型int 4
1.3.4类型long 5
1.3.6浮点类型float/double 6
1.3.5类型_intn 6
1.4 I/O流与字符数据 7
1.5常量 8
1.6类型转换 8
1.6.1类型的自动转换 8
1.6.2强制类型转换 9
1.7 C++的存储类型与变量的作用域 9
1.8操作符 10
1.8.1算数运算符 10
1.8.2关系运算符 10
1.8.6三目运算(条件操作符) 11
1.8.5复合赋值运算符 11
1.8.4位运算符 11
1.8.3逻辑运算符 11
1.9复杂数据类型 12
1.9.1枚举类型 12
1.9.2联合 12
1.9.3结构 13
1.10数组与字符序列 14
1.10.1一维数组 14
1.10.2一维数组的初始化 15
1.10.3字符序列和字符处理函数 15
1.11.1指针即地址 16
1.11.2定义指针变量 16
1.11 指针 16
1.11.3指针操作符 17
1.11.4指针运算 17
1.11.5指针与数组 17
1.11.6指针的初始化 17
1.11.7无类型指针 18
1.12控制结构 19
1.12.1分支结构 20
1.12.2循环结构 22
1.13 函数 23
1.13.1函数的一般格式 23
1.13.3指针函数与函数指针 24
1.13.2函数使用的一般原则 24
1.13.4函数重载 27
1.14动态存储分配与程序结构 32
1.14.1动态存储分配 32
1.14.2程序结构的组织 37
习题一 38
第2章 面向对象程序设计基础 40
2.1基本概念 40
2.1.1数据抽象及数据封装 41
2.1.2继承性与派生类 41
2.2.1类定义的一般格式 42
2.2类定义 42
2.1.3多态性 42
2.2.2成员函数 43
2.3内联函数与非内联函数 46
2.4类与对象 47
2.5定义对象 48
2.6访问数据成员 49
2.7构造函数与析构函数 53
2.7.1构造函数 53
2.7.2构造函数的重载 55
2.7.3析构函数 58
2.8.1对象赋值 61
2.8对象运算 61
2.8.2对象数组 63
2.8.3对象指针 65
2.8.4 this指针 66
2.8.5指向类成员的指针 67
2.9类的静态成员 70
2.9.1静态数据成员 70
2.9.2静态成员函数 71
2.10模板 76
2.10.1理解函数模板 76
2.10.2理解类模板 79
2.11.1理解运算符重载 81
2.11运算符重载 81
2.11.2实现运算符重载 83
2.11.3重载I/O操作符 88
习题二 89
第3章 面向对象程序设计应用 103
3.1基本概念 103
3.2定义派生类 104
3.3派生类的构造函数 107
3.4理解数据成员的访问权限 112
3.5多级继承与多继承 116
3.5.1多级继承 116
3.5.2多继承 119
3.6.1多继承中的二义性 121
3.6虚基类 121
3.6.2解决方法 123
3.7多态性 124
3.7.1虚函数 124
3.7.2后期联编 129
3.8理解纯虚函数 132
习题三 133
第4章 微软基础类库与消息映射 147
4.1一个简单的MFC程序 147
4.2创建Windows程序 148
4.3.1 MFC结构 150
4.3微软基础类库(MFC) 150
4.3.2 MFC的应用 151
4.4消息映射 155
4.4.1理解消息映射 155
习题四 168
第5章 Visual C++编程基础 169
5.1文档/视图结构下的数据处理机理 169
5.1.1文档/视图构造 169
5.1.2定义用户数据结构 170
5.1.3在文档类中实现用户数据操作 171
5.1.4创建用户交互平台 171
5.2文档/视图结构下的数据缓存机制 172
5.1.5调试程序 172
5.3 MFC对象的持久性机制 176
5.3.1对象的持久性机制 176
5.3.2对象序列化原理 176
5.3.3对象存取实现过程 177
5.4MFC中集合类及数据结构应用 178
5.4.1 MFC中的集合类 178
5.4.2如何选用MFC集合类 179
5.4.3模板类和非模板类 179
5.4.4使用CObList集合实现队列操作 179
5.4.5使用链式存储结构访问CStudent类的对象数据 180
5.5静态切分窗口的多视图SDI应用程序 183
5.5.1生成新项目 184
5.5.2增加文档类数据成员 184
5.5.3增加一个视图类 185
5.5.4修改框架窗口类 187
5.5.5编译运行 188
5.6鼠标操作及消息映射 189
5.6.1 Windows中的消息 189
5.6.2消息分类 189
5.6.3消息映射与用户自定义消息及处理机制 191
5.6.4 自定义消息的处理 193
5.6.5 自定义消息及处理函数定义 194
5.7绘图程序 195
5.7.1设计目标 195
5.6.6编译运行 195
5.7.2设计结果 196
5.7.3基础知识——MFC绘图步骤 196
5.7.4创建画图程序步骤 196
5.7.5视图客户区曲线的存取(永久化操作) 200
5.8对话框编程 201
5.8.1创建模态对话框 201
5.8.2创建非模态对话框 201
5.8.3基于对话框的数据交换与数据传输 202
5.8.4菜单操作 203
5.8.5创建快捷菜单 203
5.8.7控件基本操作 204
5.8.6调用通用对话框 204
5.9数据库编程 209
5.9.1创建Access数据库DB1 209
5.9.2创建数据源 209
5.9.3创建单文档程序 209
5.9.4数据库编程 211
5.9.5处理多个表 213
5.9.6实现数据表查询与排序 215
5.9.7与数据库相关的ActiveX控件 216
5.10动态链接库编程 217
5.10.1动态链接库(DLL) 217
5.10.2 DLL的概念 217
5.10.3动态链接库的创建 218
5.10.4动态链接库DLL的链接 221
5.11网络编程基础 223
5.11.1服务器端操作socket 224
5.11.2客户端Socket操作 226
5.11.3数据的传送 227
5.11.4 Client/Server模型 228
5.11.5 C/S使用范例 228
习题五 237
第6章 数据结构基础 238
6.1数据与数据结构 238
6.1.1几个基本概念 238
6.1.2数据结构的有关概念 239
6.1.3线性逻辑结构 240
6.1.4线性表的顺序存储结构及运算 241
6.1.5线性表的链式存储结构及运算 242
6.1.6线性表链式存储结构的插入和删除运算 244
6.2数据的非线性逻辑结构——树 245
6.2.1树和根树的相关概念 245
6.2.2有向树的元素 246
6.2.3根树的元素 246
6.2.4根树的存储结构和遍历 247
6.3根树和森林的遍历 247
附录A 综合应用——编写绘图程序 249
附录B 习题参考答案 270