第一篇 基础篇 2
第1章 概述 2
1.1计算机程序设计语言概述 2
1.2了解C++ 3
1.2.1发展历史和特点 3
1.2.2程序的构成 3
1.3开发环境 4
1.3.1开发系统组成和开发流程 4
1.3.2典型C++开发环境 6
1.3.3安装Visual C++ 6.0 7
1.3.4第一个C++程序:Hello World ! 10
1.4小结 12
第2章 基本元素与结构 13
2.1常量和变量 13
2.1.1常量 13
2.1.2变量 15
2.2基本元素 15
2.2.1关键字 16
2.2.2标识符 16
2.2.3运算符 17
2.2.4标点符号 21
2.3基本结构 21
2.3.1 main函数 21
2.3.2预处理命令 22
2.3.3基本输入输出 23
2.3.4注释 25
2.4本章实例 26
2.5小结 27
第3章 基本数据类型 28
3.1数据类型分类 28
3.2整型类型 28
3.3实型类型 30
3.4字符类型 32
3.5逻辑类型 34
3.6变量存储限定符 34
3.7基本数据类型的转换 35
3.7.1系统自动转换 35
3.7.2强制类型转换 36
3.8本章实例 37
3.9小结 38
第4章 语句与控制结构 39
4.1表达式 39
4.2流程图 40
4.3顺序结构 40
4.4选择结构 41
4.4.1if语句 41
4.4.2switch语句 42
4.5循环结构 44
4.5.1利用goto语句和if语句构成循环 44
4.5.2while语句 45
4.5.3do-while语句 46
4.5.4for语句 47
4.5.5break语句 49
4.5.6continue语句 50
4.6本章实例 51
4.7小结 53
第5章 数组 54
5.1一维数组的概念和存储 54
5.1.1一维数组的定义和初始化 54
5.1.2一维数组的引用 55
5.1.3一维数组内存结构和寻址 56
5.2二维数组 57
5.2.1二维数组的定义和初始化 57
5.2.2二维数组的引用 58
5.2.3二维数组内存结构和寻址 59
5.3多维数组 59
5.3.1多维数组的定义和初始化 59
5.3.2多维数组的引用 60
5.3.3多维数组内存结构和寻址 60
5.4字符数组 61
5.4.1字符数组的定义和初始化 61
5.4.2字符数组的引用 61
5.4.3利用字符数组操作字符串 62
5.5本章实例 63
5.6小结 64
第2章 函数 65
6.1函数的概念和定义 65
6.2函数原型 66
6.3函数参数 68
6.3.1函数参数传递方式 68
6.3.2main()函数的参数 69
6.3.3省略符形参 70
6.4函数作用域规则 70
6.4.1作用域 70
6.4.2局部变量 71
6.4.3全局变量 71
6.5函数的嵌套与递归调用 72
6.6内联函数 73
6.7函数的模板 75
6.8本章实例 75
6.9小结 77
第7章 指针与引用 78
7.1指针的概念和基本用法 78
7.1.1指针的概念 78
7.1.2指针变量的声明 78
7.1.3地址运算符 79
7.1.4指针的赋值 80
7.1.5指针运算 81
7.1.6const指针 82
7.1.7void指针 84
7.1.8指针的指针 84
7.2指针与数组 85
7.2.1指针数组 85
7.2.2数组名以及下标和指针的关系 86
7.3指针与函数 88
7.3.1指针作为函数参数 88
7.3.2指针函数 90
7.3.3指向函数的指针 91
7.4指针和动态内存的分配 93
7.4.1C++内存分配机制 93
7.4.2C++风格的动态内存分配方法 94
7.4.3C风格的动态内存分配方法 99
7.4.4动态内存分配陷阱 100
7.4.5动态内存的传递 102
7.5引用 104
7.5.1引用的概念和基本用法 104
7.5.2引用作为函数参数 106
7.5.3引用作为返回值 107
7.6本章实例 108
7.7小结 109
第8章 自定义类型与字符串 110
8.1结构体 110
8.1.1结构体的概念和声明 110
8.1.2结构体变量的定义 111
8.1.3结构体变量的初始化 113
8.1.4结构体的使用 114
8.2共用体 116
8.2.1共用体类型及其变量 117
8.2.2共用体的使用 118
8.3枚举类型 119
8.3.1枚举类型与枚举变量 120
8.3.2枚举类型的使用 120
8.4类型定义 121
8.5字符串 122
8.5.1C风格字符串处理 122
8.5.2用指针操作字符串 123
8.5.3C++字符串处理 126
8.5.4常用字符串的操作函数 128
8.6本章实例 130
8.7小结 133
第二篇 面向对象篇 136
第9章 面向对象设计思想和类 136
9.1程序设计思想 136
9.1.1结构化程序设计思想 136
9.1.2面向对象程序设计思想 137
9.2类 138
9.2.1类的定义和组成 138
9.2.2类成员的访问控制 141
9.2.3类实例和类成员访问 143
9.2.4类的作用域和对象的生存周期 146
9.2.5this指针 146
9.2.6静态成员 147
9.2.7常成员 151
9.3构造函数和析构函数 153
9.3.1构造函数 153
9.3.2拷贝构造函数 157
9.3.3默认拷贝构造函数 159
9.3.4浅拷贝和深拷贝 161
9.3.5析构函数 164
9.4类的组合 166
9.4.1类的组合的概念 166
9.4.2组合类的构造函数和析构函数 167
9.4.3组合类的初始化 168
9.5友元函数和友元类 170
9.5.1友元的需求性和定义 170
9.5.2友元函数 171
9.5.3友元类 174
9.6本章实例 176
9.7小结 178
第10章 重载技术 179
10.1重载函数 179
10.1.1重载函数的概念和定义 179
10.1.2重载函数的使用 180
10.2运算符重载 181
10.2.1运算符重载的需求 181
10.2.2运算符重载的基本方法和规则 182
10.2.3增减量运算符的重载 185
10.2.4转换运算符的重载 187
10.2.5赋值运算符的重载 189
10.3本章实例 190
10.4小结 192
第11章 继承与派生 193
11.1继承与派生 193
11.1.1继承与派生的概念 193
11.1.2派生类的声明 194
11.1.3生成派生类的步骤 195
11.2继承中的访问控制 198
11.2.1公用继承的访问控制 198
11.2.2私有继承的访问控制 199
11.2.3保护继承的访问控制 201
11.3派生类的构造函数和析构函数 202
11.3.1派生类的构造函数 202
11.3.2派生类的析构函数 205
11.4基类与派生类的相互作用 207
11.4.1派生类成员的标识和访问 207
11.4.2基类和派生类赋值规则 209
11.5多重继承特性 210
11.5.1多重继承引起的二义性问题 210
11.5.2虚拟继承和虚基类 210
11.6本章实例 212
11.7小结 218
第12章 虚函数与多态性 219
12.1多态性 219
12.1.1多态的概念和类型 219
12.1.2多态的实现方式 220
12.2虚函数 220
12.2.1虚函数的概念和定义 220
12.2.2虚函数的使用规则 225
12.3纯虚函数与抽象类 226
12.3.1纯虚函数 226
12.3.2抽象类和抽象基类 226
12.4本章实例 228
12.5小结 234
第13章 模板与命名空间 235
13.1模板的概念与作用 235
13.1.1模板的概念 235
13.1.2模板的作用 235
13.2函数模板 236
13.2.1函数模板的定义和使用 237
13.2.2重载模板函数 239
13.3类模板 240
13.4命名空间 245
13.4.1程序中的命名冲突分析 245
13.4.2命名空间的概念 247
13.4.3命名空间的使用 247
13.4.4标准命名空间std 250
13.4.5C++头文件的使用 250
13.5本章实例 251
13.6小结 254
第14章 标准模板库 255
14.1泛型化编程与STL介绍 255
14.1.1泛型化编程的概念 255
14.1.2C++标准库与STL的内容 255
14.2STL的使用 256
14.2.1容器 257
14.2.2迭代器 259
14.2.3算法 260
14.3本章实例 262
14.4小结 266
第三篇 应用篇 268
第15章 输入输出体系 268
15.1流的概念 268
15.1.1C语言中I/O的弊端 268
15.1.2流类 269
15.2流对象和格式化输出 271
15.2.1预定义的流对象 271
15.2.2流格式化输出 272
15.3重载流运算符 275
15.3.1流运算符重载概述 275
15.3.2插入运算符重载 276
15.3.3提取运算符重载 277
15.4文件操作 278
15.4.1文件概述 278
15.4.2文件操作基础 279
15.4.3打开和关闭文件 279
15.4.4文本文件输入输出 281
15.4.5二进制文件输入输出 286
15.4.6文件定位 288
15.5本章实例 289
15.6小结 297
第16章 异常处理 298
16.1异常概述 298
16.1.1异常的概念和分类 298
16.1.2异常现象的举例 299
16.2异常处理机制 299
16.2.1异常处理的任务 300
16.2.2异常处理基本思想 300
16.2.3异常处理的组成 301
16.2.4异常处理的执行过程 303
16.3析构函数与异常处理 305
16.4本章实例 307
16.5小结 309
第17章 API编程和MFC框架简介 310
17.1API编程介绍 310
17.1.1认识API的编程 310
17.1.2API函数的概念和作用 313
17.1.3Windows API分类 314
17.1.4Windows API基本术语 314
17.1.5Windows API基本使用 316
17.2MFC框架简介 318
17.2.1认识MFC的程序 318
17.2.2MFC的编程框架 319
17.2.3MFC的模板 321
17.2.4MDI应用程序的构成 321
17.3小结 323
第18章 多线程处理 324
18.1进程和线程 324
18.1.1进程和线程的概念 324
18.1.2线程的优先级 325
18.1.3线程运行状态 325
18.2线程的操作 326
18.2.1线程的建立 326
18.2.2线程的优先级设定 330
18.2.3线程的挂起、恢复 330
18.2.4线程的结束 332
18.3本章实例 333
18.4小结 335
第19章 链接库 336
19.1链接库概述 336
19.2静态链接库 337
19.2.1静态链接库的编写 337
19.2.2静态链接库的使用 339
19.3动态链接库 340
19.3.1DLL文件的编写 340
19.3.2导出DLL资源 342
19.4动态链接库的使用 345
19.4.1隐式链接 345
19.4.2显式链接 346
19.5小结 348
第四篇 开发篇 350
第20章 基本算法 350
20.1算法的概念和特征 350
20.1.1算法的概念 350
20.1.2算法的特征 350
20.1.3算法的设计要求和描述方法 350
20.1.4算法的衡量 351
20.2常用算法 351
20.2.1递推法 352
20.2.2递归法 352
20.2.3回溯法 353
20.2.4贪婪法 354
20.2.5分治法 355
20.2.6动态规划法 356
20.2.7迭代法 356
20.2.8穷举法 357
20.3小结 358
第21章 数据结构 359
21.1线性表及其应用 359
21.2链表及其应用 360
21.3堆栈及其应用 362
21.4队列及其应用 363
21.5特殊矩阵、广义表及其应用 363
21.6二叉树及其应用 364
21.7散列结构及其应用 366
21.8图及其应用 367
21.9小结 368
第22章 数据库编程 369
22.1概述 369
22.1.1数据库和数据库系统 369
22.1.2常见数据库访问技术 370
22.2数据访问接口ODBC 371
22.2.1ODBC概述 371
22.2.2ODBC API编程 372
22.3MFC的ODBC编程 375
22.3.1CDatabase和CRecordSet类介绍 376
22.3.2数据查询 378
22.3.3参数化数据查询 379
22.3.4新建数据 379
22.3.5数据删除 380
22.3.6数据更新 380
22.3.7直接执行SQL语句 381
22.4小结 381
第23章 网络编程 382
23.1网络通信 382
23.1.1网络类型 382
23.1.2网络拓扑结构 382
23.2网络通信协议 384
23.2.1TCP/IP结构 384
23.2.2UDP协议 385
23.2.3相关术语 385
23.3SOCKET网络编程接口 386
23.3.1Socket模型 386
23.3.2Socket的C/S编程方式 386
23.3.3C++下的Socket 387
23.3.4利用Socket建立服务器端程序 389
23.3.5利用Socket建立客户端程序 391
23.4小结 392
第24章 利用ADO实现简单的学生信息管理系统 393
24.1ADO简介 393
24.1.1ADO概述 393
24.1.2MFC的ADO编程 394
24.1.3ADO操作数据库的基本步骤 395
24.2程序的需求 395
24.3程序的界面设计 396
24.4程序的数据库 396
24.5核心程序实现分析 397
24.6小结 400
第25章 火车信息查询系统 401
25.1程序需求 401
25.2程序界面 401
25.3服务端程序 402
25.3.1服务器通信类 402
25.3.2建立处理线程 403
25.3.3火车信息处理 404
25.3.4发送和接收 405
25.4客户端程序 406
25.4.1连接服务器 406
25.4.2发送车次信息 407
25.4.3接收服务器返回信息 407
25.5小结 408