第一篇 基础编程 3
第1章 C++概述 3
1.1 C++历史背景 3
1.2 C++语言的特点 5
练习题 5
第2章 简单的C++程序 6
2.1流程框图 6
2.2简单的输入/输出程序 7
2.3程序中的注解 14
2.4有分支结构和循环结构的程序 15
2.4.1有分支结构的程序 15
2.4.2有循环结构的程序 19
2.4.3结构化的程序设计及结构化流程图 24
练习题 26
第3章 数据与运算 28
3.1引言 28
3.2字符集与标识符 30
3.3基本数据类型 31
3.4常量 33
3.4.1字面常量 33
3.4.2标识符常量 35
3.5基本运算及表达式 36
3.5.1算术运算、比较运算和逻辑运算 37
3.5.2增量/减量运算、赋值运算和逗号运算 37
3.5.3字符数据的处理 39
3.6表达式的进一步说明 40
3.6.1整数除和算术溢出 40
3.6.2比较运算的特殊用法 41
3.6.3前置和后置的增量和减量 43
3.6.4类型的转换 44
3.6.5短路表达式 47
3.7位运算 48
3.8数据的输出格式控制 50
练习题 53
第4章 选择结构和循环结构 57
4.1 if语句及其嵌套 57
4.2条件表达式 60
4.3 switch语句 60
4.4 while语句和do-while语句 63
4.5 for语句 65
4.6 break语句和continue语句 68
4.7 goto语句及语句标号 72
练习题 73
第5章 构造数据类型 76
5.1数组 76
5.1.1一维数组 76
5.1.2多维数组 80
5.1.3字符数组及字符串处理 84
5.1.4字符串处理函数 87
5.1.5常用数组算法 89
5.2指针 95
5.3引用 102
5.4结构与联合 103
5.4.1结构 103
5.4.2联合 108
5.5枚举 110
5.6用typedef定义类型 111
练习题 113
第一篇综合练习题 116
第二篇 面向过程编程 123
第6章 函数 123
6.1函数的定义 123
6.2函数的参数传递 127
6.3递归函数、重载函数和默认参数函数 133
6.3.1递归函数 133
6.3.2重载函数 135
6.3.3默认参数函数 137
6.4内联函数 138
练习题 139
第7章变量的作用域和存储类型 142
7.1标识符的作用域 142
7.1.1局部作用域和全局作用域 142
7.1.2标识符的定义与说明以及混合作用域 145
7.1.3语句作用域 146
7.1.4名空间及名空间作用域 147
7.1.5标识符的重名 151
7.1.6函数说明的隐藏规则 152
7.2程序的内存映像 153
7.3变量的存储类型 157
7.3.1 auto类型和static类型 157
7.3.2 register类型 160
7.3.3无名变量——函数值 161
7.3.4多文件程序中的变量和函数 161
练习题 163
第8章 指针的高级用法 165
8.1指针与函数 165
8.1.1指针做参数 165
8.1.2指针传递数组和返回指针 167
8.2不定参数 169
8.3各类指针 170
8.3.1字符指针 170
8.3.2行指针 171
8.3.3指针数组与指向指针的指针 173
8.3.4函数指针 179
8.3.5 void指针 182
8.3.6 const与指针 184
8.4跨函数引用 186
8.4.1引用型参数 186
8.4.2返回引用 187
8.5链表和二叉树 188
8.5.1单链表 188
8.5.2 双向链表 192
8.5.3二叉树 194
8.6常见的指针错误用法 197
练习题 201
第9章 预编译命令 204
9.1包含命令 205
9.2宏定义 206
9.2.1无参宏定义 206
9.2.2带参宏定义 208
9.3条件编译命令 210
9.4程序的编译与连接 214
练习题 214
第二篇综合练习题 216
第三篇 面向对象编程 223
第10章 类与对象 223
10.1类与对象的定义 224
10.1.1结构的演变 224
10.1.2类的定义与使用 225
10.1.3内联成员函数 228
10.1.4 this指针 228
10.1.5对象的使用 230
10.2类的构造与析构 231
10.2.1构造函数与析构函数 231
10.2.2复制构造函数 237
10.2.3临时对象 241
10.2.4调用函数时数据传递中的对象 243
10.3动态对象与对象数组 245
10.3.1对象数组的构造与析构 245
10.3.2动态对象与动态对象数组 246
10.3.3对象的生命周期 248
10.4复杂结构的类 250
10.5内嵌类型 254
练习题 256
第11章 类的静态成员与类的友元 258
11.1静态成员 258
11.1.1静态成员变量 258
11.1.2静态成员函数 260
11.1.3静态成员变量与全局变量的比较 262
11.2类的友元 263
11.2.1友元函数 263
11.2.2友元类 264
练习题 266
第12章 运算符的重载 268
12.1类成员的运算符重载 268
12.2非成员的运算符重载 270
12.3赋值运算符的重载 272
12.4转换函数 275
12.5特殊的运算符重载 278
12.5.1重载++和-- 278
12.5.2重载<<和>> 280
12.5.3重载[]、*(指向)和-> 282
12.5.4重载()和函数对象 285
12.5.5重载new和delete 287
12.6 string类的使用 289
练习题 292
第13章 类的继承性 295
13.1单一派生 296
13.1.1派生类的定义 296
13.1.2公有派生、私有派生和保护派生 298
13.1.3重名的优先级和隐藏 302
13.2派生类的构造与析构 304
13.3多重派生 307
13.4重名的使用规则 308
13.5派生类的类型兼容 310
13.6虚基类及复杂类的构造与析构 314
练习题 319
第14章 类的多态性 322
14.1虚函数 322
14.2虚函数的使用规则和内部实现原理 327
14.2.1虚函数的使用规则 327
14.2.2虚函数的内部实现原理 332
14.3纯虚函数与抽象类 334
练习题 339
第15章 C++输入/输出系统 343
15.1 C++输入/输出系统的结构 344
15.2 C++流的状态 345
15.3输入/输出成员函数及插入符《和提取符》 347
15.4 C++流的格式控制 352
15.5文件流 357
15.5.1文件的打开与关闭 357
15.5.2文本文件的使用 359
15.5.3二进制文件的使用 362
15.6字符串流 366
练习题 369
第16章 异常 370
16.1异常机制 370
16.2异常的使用 371
16.3异常类 375
练习题 376
第三篇综合练习题 377
第四篇 泛型编程 385
第17章 模板 385
17.1函数模板 385
17.2类模板 388
练习题 391
第18章 STL编程简介 392
18.1 STL的简单例子 392
18.2 STL容器与迭代器 393
18.2.1顺序容器 393
18.2.2关联容器 396
18.3 STL算法 397
练习题 401
附录A 计算机基础知识 402
附录B 使用Visual C++编写控制台应用程序 409
附录C C++旧版本和C++国际标准的常见区别 413
参考文献 415