第1章 C+语言概述 1
1.1 C++程序设计语言简介 1
1.1.1 C++语言的发展历程 1
1.1.2面向对象程序设计技术 2
1.1.3学习C++程序设计的注意事项 3
1.2 Visual C++2010编程工具简介 4
1.2.1 C++程序生成过程 4
1.2.2 .NET框架与Visual C++ 2010 5
1.2.3 Visual C++ 2010集成开发环境简介 6
1.2.4简单的控制台应用程序 7
1.2.5简单的窗体应用程序 8
1.2.6调试程序 9
本章小结 10
习题1 10
第2章 数据类型与基本运算 11
2.1 C++语言的词法及规则 11
2.1.1字符集 11
2.1.2关键字 11
2.1.3标识符与分隔符 12
2.1.4运算符 12
2.2数据类型 14
2.2.1基本数据类型 14
2.2.2构造数据类型 15
2.3变量和常量 16
2.3.1变量 16
2.3.2常量 18
2.4运算与表达式 19
2.4.1运算类型和表达式 20
2.4.2算术运算及算术表达式 20
2.4.3赋值运算及赋值表达式 21
2.4.4关系运算及关系表达式 22
2.4.5逻辑运算及逻辑表达式 23
2.4.6位运算及位表达式 24
2.4.7其他运算及其表达式 26
2.5数组 28
2.5.1一维数组 28
2.5.2多维数组 30
2.5.3字符数组 32
2.6指针类型与引用类型 34
2.6.1指针类型与指针变量 34
2.6.2指针运算 35
2.6.3引用类型 37
2.7枚举类型 38
2.8控制台输入和输出 40
2.8.1控制台输入 40
2.8.2控制台输出 41
2.9案例实训 42
本章小结 43
习题2 44
第3章 基本控制结构和函数 46
3.1算法和基本控制结构 46
3.1.1算法和流程图 46
3.1.2三种基本控制结构 48
3.1.3语句 48
3.2选择型控制结构 49
3.2.1 if…else选择结构 49
3.2.2 switch多分支选择结构 50
3.3循环型控制结构 53
3.3.1 for循环结构 53
3.3.2 while循环结构 55
3.3.3 do…while循环结构 57
3.3.4跳转语句 59
3.4文本文件的输入和输出 61
3.4.1向文本文件输出数据 62
3.4.2从文本文件输入数据 63
3.5函数基础 64
3.5.1函数定义和函数调用 64
3.5.2函数的参数传递 67
3.5.3函数的返回值 72
3.5.4函数重载 74
3.5.5内联函数 75
3.6内存模型、作用域和生存期 76
3.6.1 C++程序内存模型 76
3.6.2全局变量和局部变量 77
3.6.3作用域和可见性 77
3.6.4存储类型和生存期 78
3.7案例实训 80
本章小结 83
习题3 83
第4章 类与对象 88
4.1面向对象编程:封装 88
4.2类与对象的定义和使用 88
4.2.1类的定义 89
4.2.2对象的创建 90
4.2.3 this指针与内存中的对象 93
4.3构造函数和析构函数 94
4.3.1构造函数的定义与使用 95
4.3.2析构函数的定义与使用 97
4.4类的复用技术——组合 99
4.4.1成员对象的构造和析构 99
4.4.2组合应用示例 102
4.5类中的静态成员 105
4.5.1静态数据成员 105
4.5.2静态成员函数 108
4.6类的友元 110
4.6.1友元函数 110
4.6.2友元类 112
4.7运算符重载 114
4.7.1成员函数实现运算符重载 114
4.7.2友元函数实现运算符重载 118
4.7.3特殊运算符的重载 120
4.7.4流插入和提取运算符的重载 127
4.8多文件结构与编译预处理 129
4.8.1多文件结构 129
4.8.2编译预处理 129
4.9案例实训 133
本章小结 138
习题4 139
第5章 数组、指针及动态内存 143
5.1数组与指针 143
5.1.1指向数组的指针 143
5.1.2指针数组 145
5.1.3数组作为函数参数 146
5.2二级指针 148
5.3动态内存的分配与释放 149
5.3.1 new和delete运算符 149
5.3.2深复制与浅复制 154
5.4动态内存应用示例 156
5.4.1 Array类的设计 157
5.4.2 String类的设计 159
5.5递归函数 162
5.6函数指针 166
5.7案例实训 171
本章小结 173
习题5 174
第6章 类的继承 177
6.1面向对象编程——继承 177
6.2派生类 178
6.2.1派生类的定义 178
6.2.2继承方式与访问控制 181
6.2.3成员函数的同名覆盖与隐藏 184
6.2.4派生类与基类的赋值兼容 187
6.3派生类的构造与析构 190
6.4多重继承与虚基类 193
6.4.1多重继承 193
6.4.2虚基类 195
6.5案例实训 199
本章小结 204
习题6 204
第7章 多态性 208
7.1面向对象编程——多态 208
7.2虚函数与动态绑定 209
7.2.1虚函数的定义和使用 209
7.2.2 VC++动态绑定的实现机制 212
7.2.3虚析构函数 213
7.3纯虚函数与抽象类 215
7.4案例实训 221
本章小结 225
习题7 225
第8章 模板与标准模板库 229
8.1函数模板 229
8.1.1函数模板的定义与实例化 229
8.1.2函数模板与重载 232
8.2类模板 233
8.2.1类模板的定义与实例化 234
8.2.2类模板与继承 238
8.2.3类模板与友元 241
8.3模板应用示例 242
8.3.1栈类模板 243
8.3.2链表类模板 245
8.4标准模板库简介 251
8.4.1概述 251
8.4.2容器 252
8.4.3迭代器 257
8.4.4算法与函数对象 261
8.4.5 string类 266
8.5案例实训 268
本章小结 269
习题8 270
第9章 异常处理 272
9.1异常概述 272
9.2异常处理机制 272
9.2.1异常的抛出 273
9.2.2异常的捕获与处理 275
9.2.3重新抛出异常与堆栈展开 276
9.3构造函数、析构函数和异常 279
9.4标准库的异常类层次结构 282
9.5案例实训 287
本章小结 289
习题9 289
第10章 输入输出流与文件 292
10.1流概述 292
10.2流的格式控制 294
10.2.1流格式状态字 294
10.2.2流格式操纵符 297
10.2.3流格式控制成员函数 298
10.3输入流与输出流 300
10.3.1输入流 300
10.3.2输出流 302
10.3.3流与对象的输入输出 303
10.4流的错误状态 304
10.5文件的输入和输出 306
10.5.1文件的基本操作 307
10.5.2文本文件的输入和输出 310
10.5.3二进制文件的输入和输出 312
10.6字符串流 316
10.7案例实训 318
本章小结 320
习题10 321
第11章C+/CLI程序设计基础 323
11.1概述 323
11.2 C++/CLI的基本数据类型 325
11.3 C++/CLI的句柄、装箱与拆箱 327
11.4 C++/CLI的字符串和数组 330
11.4.1 C++/CLI中的String类 330
11.4.2 C++/CLI中的数组 331
11.5 C++/CLI中的类和属性 334
11.6 C++/CLI中的多态与接口 337
11.7 C++/CLI中的模板和泛型 340
11.8 C++/CLI中的异常 342
11.9 C++/CLI中的枚举 344
11.10 .NET中的委托与事件 346
11.10.1委托 346
11.10.2事件 348
11.11案例实训 350
本章小结 352
习题11 353
第12章WinForm应用程序设计 355
12.1鼠标单击位置坐标的显示 355
12.2倒计时器 356
12.3简易计算器 358
12.4循环队列原理演示 364
12.5随机运动的小球 369
12.6 案例实训 372
本章小结 375
习题12 375
第13章 项目实践 377
13.1系统概述 377
13.2功能设计 377
13.3系统设计 377
13.3.1数据表设计 378
13.3.2界面设计 378
13.4模块设计与代码实现 379
13.4.1实体类的实现代码 379
13.4.2数据类的实现代码 382
13.4.3菜单类的实现代码 386
13.4.4应用程序类的实现代码 387
本章小结 390
习题13 390
附录A 391
附录B 393
参考文献 394