理论篇 1
第1章C++编程概述 2
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.3第一个C++程序 7
1.4输入/输出 9
小结 10
练习 11
第2章C++基础 12
2.1常量和变量 14
2.1.1标识符 14
2.1.2常量 14
2.1.3变量 15
2.1.4变量作用域 15
2.2数据类型 16
2.2.1基本内置类型 16
2.2.2自定义类型 18
2.2.3数据类型转换 18
2.3运算符 20
2.3.1算术运算符 21
2.3.2比较运算符 22
2.3.3逻辑运算符 23
2.3.4位运算符 24
2.3.5赋值运算符 26
2.3.6条件运算符 26
2.3.7 sizeof运算符 27
2.3.8运算符优先级 28
2.4流程控制 28
2.4.1分支结构 29
2.4.2循环结构 35
2.4.3转移语句 40
2.5数组 43
2.5.1数组概述 43
2.5.2一维数组 43
2.5.3二维数组 47
2.6函数 49
2.6.1函数的声明和定义 49
2.6.2函数的返回 50
2.6.3函数的调用和参数传递 50
2.6.4内联函数 51
2.6.5函数重载 52
2.7指针 53
2.7.1指针概述 53
2.7.2指针的定义和初始化 53
2.7.3指针的算术运算 55
2.7.4指针作为函数参数 56
2.7.5 指 操作动态内存(new和delete) 58
2.8引用 59
2.8.1引用的定义和初始化 60
2.8.2引用作为函数参数 61
2.8.3引用和指针的区别 62
2.9字符串 62
2.9.1字符串和字符集概述 62
2.9.2 C风格的字符串定义 62
2.9.3常用的字符串操作函数 63
小结 64
练习 65
第3章C++面向对象 67
3.1类与对象 69
3.1.1面向对象的概念 69
3.1.2类的定义 70
3.1.3构造函数和类的实例化 75
3.1.4析构函数 79
3.1.5成员函数 81
3.1.6内联成员函数 85
3.1.7静态类成员 86
3.1.8 this指针 88
3.2类继承 89
3.2.1继承 89
3.2.2派生类对象的构造 91
3.2.3派生类对象的析构 93
3.3虚函数和多态 97
3.3.1虚函数 98
3.3.2虚析构函数 99
3.3.3纯虚函数和抽象基类 103
小结 105
练习 105
第4章Win32编程 107
4.1 Windows编程基础 109
4.1.1 API与SDK 109
4.1.2窗体与句柄 109
4.1.3事件与消息 110
4.1.4常用的Windows数据类型 111
4.1.5国际化编程 111
4.1.6 Windows应用程序文件组成 113
4.2源程序组成结构 113
4.2.1 WinMain函数 113
4.2.2窗口函数 117
4.3 GDI绘图基础 122
4.3.1 GDI概述 122
4.3.2设备描述表 122
4.3.3绘图对象 123
4.3.4 GDI绘图 123
小结 130
练习 130
第5章MFC基础 131
5.1 MFC概述 133
5.1.1 MFC简介 133
5.1.2一个简单的MFC程序 133
5.1.3 MFC应用程序分析 135
5.1.4 MFC应用程序开发方法 136
5.2 MFC应用程序框架组成 137
5.2.1 MFC全局函数 137
5.2.2 MFC类体系 140
5.2.3 MFC消息映射 141
5.2.4 MFC应用程序类型 145
5.3 MFC主要类 146
5.3.1根类CObject 146
5.3.2应用程序体系结构类 147
5.3.3可视对象类 149
5.4 MFC通用类 150
5.4.1字符串类:CString 151
5.4.2文件类:CFile 154
5.4.3动态数组类 156
5.4.4链表类 157
5.5 MFC绘图 159
5.5.1 MFC对GDI的支持 159
5.5.2 CDC类及其派生类 159
5.5.3 MFC绘图对象 162
5.5.4图形绘制相关数据类型 164
小结 166
练习 166
第6章M FC文档视图 168
6.1文档/视图框架 170
6.1.1文档/视图结构概述 170
6.1.2单文档程序框架中的主要类 172
6.1.3单文档程序中文档、视图对象的创建过程 174
6.1.4文档类、视图类核心函数 175
6.1.5文档/视图界面设计 176
6.2菜单编程 177
6.2.1菜单的概念 178
6.2.2菜单的开发步骤 179
6.2.3菜单的创建与编辑 179
6.2.4菜单消息 182
6.2.5菜单命令消息的处理 183
6.2.6菜单更新消息的处理 185
6.2.7为菜单项设置快捷键 187
6.2.8弹出菜单的创建与使用 189
6.3工具栏编程 191
6.3.1工具栏CToolBar简介 192
6.3.2编辑和创建工具栏 192
6.3.3加载工具栏 194
6.3.4工具栏命令处理 196
6.4状态栏编程 197
6.4.1状态栏CStatusBar简介 197
6.4.2状态栏的创建 197
6.4.3状态栏编程 199
6.5文本编程 201
6.5.1创建插入符 201
6.5.2字符输入 203
6.6串行化 206
6.6.1串行化概述 206
6.6.2文档/视图结构对串行化的支持 206
6.6.3 CArchive类 210
6.6.4可串行化的类 213
6.6.5 CObArray和CObList对串行化的支持 215
小结 215
练习 216
第7章MFC对话框 217
7.1对话框基础知识 219
7.1.1对话框种类 219
7.1.2 CDialog类 220
7.2对话框创建和显示 221
7.2.1创建对话框模板资源 221
7.2.2模态对话框的创建和关闭 223
7.2.3非模态对话框的创建和关闭 226
7.2.4基于对话框的应用程序 228
7.3标准控件与对话框 228
7.3.1标准控件简介 229
7.3.2对话框控件的创建 229
7.3.3对话框控件成员变量 230
7.3.4对话框数据交换与验证 231
7.3.5对话框控件通知消息 236
小结 238
练习 239
第8章 网络编程 240
8.1 Windows网络编程基础 242
8.1.1 TCP/IP协议 242
8.1.2 Windows Sockets基础 244
8.1.3客户/服务器模式 244
8.1.4 MFC对WinSock的支持 245
8.1.5 MFC网络编程方法 246
8.2 UDP通信编程 246
8.2.1 CAsyncSocket类UDP异步通信 247
8.2.2创建CAsyncSocket类的派生类 247
8.2.3创建套接字 250
8.2.4 UDP接收数据 254
8.2.5 UDP发送数据 256
8.3 TCP通信编程 258
8.3.1 CAsyncSocket类服务器端编程 258
8.3.2 CSocket类客户端编程 264
小结 269
练习 269
第9章 多线程 271
9.1多线程编程基础 273
9.1.1进程和线程 273
9.1.2使用多线程的意义 273
9.2多线程编程 273
9.2.1 API多线程编程 274
9.2.2 MFC界面线程 281
9.2.3 MFC工作者线程 287
9.3线程间的通信 288
9.3.1使用全局变量 288
9.3.2使用自定义消息 291
9.4线程同步 296
9.4.1 MFC线程同步类 297
9.4.2 CCriticalSection类 297
9.4.3 CEvent类 300
9.4.4 CSemaphore类 305
小结 308
练习 309
第10章 数据库应用程序 310
10.1数据库基础知识 312
10.1.1数据库基本概念 312
10.1.2数据库管理系统 312
10.1.3结构化查询语言 313
10.1.4数据库访问技术 316
10.2 ADO数据库编程 316
10.2.1 ADO技术 317
10.2.2导入ADO库 319
10.2.3连接数据库 320
10.2.4执行ADO对象命令 321
10.2.5 Recordset对象 322
小结 336
练习 336
实践篇 337
实践1C++编程概述 338
实践指导 338
实践1.G1 338
实践1.G2 341
实践1.G3 343
知识拓展 346
1.Visual C++程序代码的调试 346
2.设置Visual C++代码编辑器格式 348
3.VS 2008快捷键 349
拓展练习 350
练习1.E.1 350
实践2 C++基础 351
实践指导 351
实践2.G1 351
实践2.G2 352
实践2.G3 353
实践2.G4 354
知识拓展 356
const指针 356
拓展练习 357
练习2.E.1 357
实践3 C++面向对象 358
实践指导 358
实践3.G1 358
实践3.G2 364
知识拓展 367
1.类的函数重载、覆盖、虚函数的区别 367
2.拷贝构造函数 368
拓展练习 369
练习3.E.1 369
实践4 Win32编程 370
实践指导 370
实践4 G.1 370
知识拓展 378
在窗口函数内处理消息 378
拓展练习 379
练习4.E.1 379
实践5 MFC基础 380
实践指导 380
实践5.G.1 380
知识拓展 386
1.预编译头 386
2.GDI位图显示 388
拓展练习 391
练习5.E.1 391
实践 6 MFC文档视图 392
实践指导 392
实践6 G.1 392
实践6 G.2 395
知识拓展 404
多文档框架的使用 404
拓展练习 406
练习6.E.1 406
实践7 MFC对话框 407
实践指导 407
实践7.G.1 407
知识拓展 415
属性表对话框 415
拓展练习 420
练习7.E.1 420
实践8网络编程 421
实践指导 421
实践8.G.1 421
实践8.G.2 434
知识拓展 447
WinSock函数介绍 447
拓展练习 455
练习8.E.1 455
实践9多线程 456
实践指导 456
实践9.G.1 456
实践9.G.2 465
知识拓展 474
线程死锁 474
拓展练习 477
练习9.E.1 477
实践10数据库应用程序 478
实践指导 478
实践10 G.1 478
知识拓展 491
1MFC中利用ODBC类访问数据库 491
拓展练习 495
练习10.E.1 495
附录A Microsoft C++关键字 496