理论篇 3
第1章 C++编程概述 3
1.1 C++简介 4
1.1.1 C++的发展历程 4
1.1.2 C++标准 4
1.1.3 C++特性 5
1.2 C++编程环境 5
1.2.1 主流开发工具 5
1.2.2 Visual Studio 6
1.2.3 联机帮助 7
1.2.4 Visual C++项目类型 7
1.3 第一个C++程序 9
1.4 输入/输出 10
1.4.1 标准输入与输出对象 10
1.4.2 使用cout对象进行输出 11
1.4.3 使用cin对象进行输入 11
本章小结 12
本章练习 12
第2章 C++基础 13
2.1 常量和变量 14
2.1.1 标识符 14
2.1.2 常量 14
2.1.3 变量 15
2.1.4 变量作用域及生存期 16
2.2 数据类型 17
2.2.1 基本内置类型 18
2.2.2 自定义类型 19
2.2.3 数据类型转换 20
2.3 运算符 24
2.3.1 算术运算符 24
2.3.2 比较运算符 25
2.3.3 逻辑运算符 26
2.3.4 位运算符 27
2.3.5 赋值运算符 29
2.3.6 条件运算符 29
2.3.7 sizeof运算符 30
2.3.8 运算符优先级 30
2.4 流程控制 31
2.4.1 分支结构 31
2.4.2 循环结构 37
2.4.3 转移语句 41
2.5 数组 43
2.5.1 数组概述 43
2.5.2 一维数组 44
2.5.3 二维数组 47
2.6 字符串 49
2.6.1 字符串和字符集概述 49
2.6.2 C风格的字符串的定义 49
2.6.3 常用字符串操作函数 50
本章小结 51
本章练习 51
第3章 函数和指针 53
3.1 函数 54
3.1.1 函数的声明和定义 54
3.1.2 函数的返回 55
3.1.3 形参和实参 55
3.1.4 内联函数 57
3.1.5 函数重载 58
3.1.6 静态函数 59
3.1.7 C++中的const函数 59
3.2 指针 61
3.2.1 指针概述 61
3.2.2 指针的定义和初始化 61
3.2.3 指针的算术运算 62
3.2.4 指针作为函数参数 64
3.2.5 指针操作动态内存(new和delete) 66
3.2.6 函数指针 67
3.3 引用 71
3.3.1 引用的定义和初始化 71
3.3.2 引用作为函数参数 72
3.3.3 引用和指针的区别 73
3.4 函数参数的传递方式 73
3.4.1 值传递(value) 73
3.4.2 指针传递(address) 74
3.4.3 引用传递(reference) 75
本章小结 76
本章练习 76
第4章 C++面向对象编程 77
4.1 类与对象 78
4.1.1 面向对象的概念 78
4.1.2 类的定义 79
4.1.3 构造函数和类的实例化 84
4.1.4 析构函数 87
4.1.5 成员函数 90
4.1.6 内联成员函数 93
4.1.7 静态类成员 95
4.1.8 this指针 97
4.2 类继承 97
4.2.1 继承 97
4.2.2 派生类对象的构造 99
4.2.3 派生类对象的析构 101
4.3 虚函数和多态 106
4.3.1 虚函数 106
4.3.2 虚析构函数 108
4.3.3 纯虚函数和抽象基类 111
本章小结 113
本章练习 114
第5章 Win32编程 115
5.1 Windows编程基础 116
5.1.1 Windows程序的内部运行原理 116
5.1.2 API 116
5.1.3 事件与消息 117
5.1.4 窗体与句柄 117
5.1.5 常用的Windows数据类型 119
5.1.6 国际化编程 119
5.1.7 Windows应用程序文件组成 121
5.2 源程序组成结构 121
5.2.1 入口函数WinMain() 121
5.2.2 窗口函数 125
5.3 GDI绘图基础 130
5.3.1 GDI概述 130
5.3.2 设备描述表 130
5.3.3 绘图对象 131
5.3.4 GDI绘图 131
本章小结 137
本章练习 138
第6章 MFC基础 139
6.1 MFC概述 140
6.1.1 MFC简介 140
6.1.2 一个简单的MFC程序 140
6.1.3 MFC应用程序分析 142
6.1.4 MFC应用程序开发方法 144
6.2 MFC应用程序框架组成 146
6.2.1 MFC全局函数 146
6.2.2 MFC类体系 148
6.2.3 MFC消息映射 150
6.2.4 MFC应用程序类型 153
6.3 MFC主要类 154
6.3.1 根类CObject 154
6.3.2 应用程序体系结构类 155
6.3.3 可视对象类 157
6.4 MFC通用类 159
6.4.1 字符串类CString 159
6.4.2 文件类CFile 162
6.4.3 动态数组类 164
6.4.4 链表类 165
6.5 MFC绘图 166
6.5.1 MFC对GDI的支持 167
6.5.2 CDC类及其派生类 167
6.5.3 MFC绘图对象 170
6.5.4 图形绘制相关数据类型 172
本章小结 173
本章练习 174
第7章 MFC文档/视图 175
7.1 文档/视图框架的概念 176
7.1.1 文档/视图结构 176
7.1.2 文档/视图程序的类和关系 180
7.1.3 单文档程序中文档/视图对象的创建过程 182
7.1.4 文档类、视图类核心函数 186
7.1.5 文档/视图界面设计 187
7.1.6 在View中画线 189
7.2 菜单编程 193
7.2.1 菜单的结构 193
7.2.2 菜单的开发步骤 194
7.2.3 菜单的创建与编辑 194
7.2.4 菜单消息 200
7.2.5 菜单命令消息的处理 200
7.2.6 菜单更新消息的处理 203
7.2.7 为菜单项设置快捷键 205
7.2.8 弹出菜单项的创建与使用 207
7.3 工具栏编程 210
7.3.1 工具栏CToolBar简介 210
7.3.2 编辑和创建工具栏 211
7.3.3 加载工具栏 213
7.3.4 工具栏命令处理 214
7.4 状态栏编程 215
7.4.1 状态栏CStatusBar简介 215
7.4.2 状态栏的创建 215
7.4.3 状态栏编程 217
7.5 文本编程 219
7.5.1 创建插入符 219
7.5.2 字符输入 222
7.6 串行化 226
7.6.1 串行化概述 226
7.6.2 文档/视图结构对串行化的支持 226
7.6.3 串行化深入理解 230
7.6.4 CArchive类使用 231
7.6.5 可串行化的类 235
7.6.6 CObArray和CObList类对串行化的支持 237
本章小结 237
本章练习 238
第8章 MFC对话框 239
8.1 对话框基础知识 240
8.1.1 对话框种类 240
8.1.2 CDialog类 241
8.2 对话框创建和显示 241
8.2.1 创建对话框模板资源 242
8.2.2 模态对话框的创建和关闭 244
8.2.3 非模态对话框的创建和销毁 247
8.2.4 基于对话框的应用程序 248
8.3 标准控件与对话框 249
8.3.1 标准控件简介 249
8.3.2 对话框控件的创建 250
8.3.3 对话框控件成员变量 250
8.3.4 访问对话框控件 252
8.3.5 对话框数据交换与验证 255
8.3.6 对话框控件通知消息 259
本章小结 261
本章练习 262
第9章 网络编程 263
9.1 Windows网络编程基础 264
9.1.1 网络通信的基本原理 264
9.1.2 数据封装 264
9.1.3 IP地址和端口 265
9.1.4 套接字和字节序 265
9.1.5 Windows Sockets基础 265
9.1.6 客户/服务器模式 266
9.1.7 Socket API编程 266
9.1.8 MFC对Winsock的支持 271
9.1.9 MFC网络编程方法 272
9.2 UDP通信编程 273
9.2.1 CAsyncSocket类UDP异步通信 273
9.2.2 创建CAsyncSocket类的派生类 274
9.2.3 创建套接字 277
9.2.4 UDP接收数据 280
9.2.5 UDP发送数据 281
9.3 TCP通信编程 283
9.3.1 CAsyncSocket类服务端编程 283
9.3.2 CSocket类客户端编程 289
本章小结 293
本章练习 293
第10章 多线程 295
10.1 内核对象 296
10.2 进程和线程 296
10.3 多线程编程基础 297
10.3.1 进程地址空间 297
10.3.2 线程 297
10.3.3 跨进程边界共享内核对象 298
10.3.4 使用多线程的意义 298
10.4 多线程编程 298
10.4.1 API多线程编程 299
10.4.2 MFC界面线程 306
10.4.3 MFC工作者线程 311
10.5 线程间的通信 312
10.5.1 使用全局变量 312
10.5.2 使用自定义消息 314
10.6 线程同步 319
10.6.1 MFC线程同步类 319
10.6.2 CCriticalSection类 320
10.6.3 CEvent类 322
10.6.4 CSemaphore类 326
本章小结 329
本章练习 330
第11章 数据库应用程序 331
11.1 数据库基础知识 332
11.1.1 数据库基本概念 332
11.1.2 数据库管理系统 332
11.1.3 结构化查询语言 333
11.1.4 数据库访问技术 335
11.2 ADO数据库编程 336
11.2.1 ADO技术 336
11.2.2 导入ADO库 339
11.2.3 连接数据库 339
11.2.4 执行ADO对象命令 341
11.2.5 Recordset对象 342
本章小结 354
本章练习 354
实践篇 357
实践1 C++编程概述 357
实践指导 357
实践1.1 357
实践1.2 360
实践1.3 362
知识拓展 365
拓展练习 368
实践2 C++基础 369
实践指导 369
实践2.1 369
实践2.2 370
实践2.3 371
实践2.4 372
知识拓展 374
拓展练习 374
实践3 C++面向对象 375
实践指导 375
实践3.1 375
实践3.2 381
知识拓展 385
拓展练习 386
实践4 Win32编程 387
实践指导 387
实践 387
知识拓展 395
拓展练习 397
实践5 MFC基础 398
实践指导 398
实践 398
知识拓展 404
拓展练习 409
实践6 MFC文档视图 410
实践指导 410
实践6.1 410
实践6.2 414
知识拓展 423
拓展练习 424
实践7 MFC对话框 425
实践指导 425
实践 425
知识拓展 432
拓展练习 436
实践8 网络编程 437
实践指导 437
实践8.1 437
实践8.2 449
知识拓展 461
拓展练习 468
实践9 多线程 469
实践指导 469
实践9.1 469
实践9.2 478
知识拓展 486
拓展练习 489
实践10 数据库应用程序 490
实践指导 490
实践 490
知识拓展 502
拓展练习 506
附录 Visual C++关键字 507