第1章 C++编程简介 1
1.1 计算机程序设计语言 1
1.1.1 机器语言与汇编语言 1
1.1.2 高级语言 2
1.1.3 面向对象的程序设计语言 3
1.1.4 面向对象的基本概念 4
1.2 C++语言概述 5
1.2.1 C++语言的产生 5
1.2.2 C++的特点 5
1.3 C++程序开发过程 6
1.4 C++程序实例 7
1.4.1 一个简单的C++程序 7
1.4.2 使用名字空间 9
1.4.3 C++输入输出简介 10
1.5 本章小结 13
习题1 14
第2章 数据类型与表达式 17
2.1 数据类型概述 17
2.2 C++的基本数据类型 18
2.2.1 字符集 18
2.2.2 基本数据类型 18
2.3 数值 20
2.3.1 整型数 20
2.3.2 浮点型数 21
2.3.3 字符型数 22
2.3.4 字符串 24
2.3.5 布尔型数 25
2.4 变量 25
2.4.1 标识符与关键字 25
2.4.2 变量的定义与赋初值 26
2.5.2 常变量 27
2.5.1 符号常量 27
2.5 常量 27
2.6 运算符与表达式 28
2.6.1 优先级与结合性 28
2.6.2 算术运算符 29
2.6.3 关系运算符 30
2.6.4 逻辑运算符 31
2.6.5 位运算符 32
2.6.6 赋值运算符 34
2.6.7 ++、--运算符 35
2.6.8 其他运算符 36
2.6.9 表达式的使用 39
2.7 类型转换 41
2.7.1 自动转换 42
2.7.2 强制类型转换 43
2.8 表达式的副作用 44
习题2 45
2.9 本章小结 45
第3章 控制结构 49
3.1 C++语言的语句 49
3.2 判断与循环 50
3.3 if…else…if判断式 51
3.3.1 基本的if语句 51
3.3.2 完整的if语句 52
3.3.3 if语句的嵌套 52
3.4 switch…case判断式 54
3.5 for循环 57
3.5.1 for语句 57
3.5.2 用for语句实现嵌套循环 58
3.6 while循环 60
3.6.1 while语句 60
3.7.1 break语句 62
3.7 break,continue,goto语句 62
3.6.2 do…while语句 62
3.7.2 continue语句 64
3.7.3 goto语句 64
3.8 本章小结 65
习题3 65
第4章 函数 71
4.1 函数的定义和声明 71
4.1.1 函数的定义 71
4.1.2 函数原型的声明 73
4.2 函数的调用 74
4.2.1 函数的调用形式 74
4.2.2 函数调用的执行过程 75
4.2.3 函数参数的按值传递 75
4.2.4 嵌套调用 77
4.2.5 递归调用 78
4.3 内联函数 82
4.4 带默认形参值的函数 84
4.5 函数重载 86
4.6 函数模板 88
4.7 C++系统函数 91
4.8 本章小结 93
习题4 94
第5章 构造数据类型 98
5.1 枚举类型 98
5.1.1 枚举类型的定义 98
5.1.2 枚举类型的使用 99
5.2 数组 101
5.2.1 一维数组定义与使用 102
5.2.2 二维数组的定义与使用 106
5.2.3 多维数组 111
5.2.4 数组与函数 114
5.2.5 字符数组与字符串 116
5.3 指针 120
5.3.1 指针的定义与使用 120
5.3.2 指针与字符串 124
5.3.3 指针与数组 126
5.3.4 多重指针 128
5.3.5 动态内存分配 130
5.3.6 指针与函数 134
5.3.7 指针常量与常指针 140
5.4 引用类型 142
5.4.1 引用类型变量的说明及使用 142
5.4.2 引用与函数 143
5.4.3 常引用 146
5.5 结构与联合 146
5.5.1 结构 147
5.5.2 联合 155
5.6 本章小结 158
习题5 159
第6章 C++程序的结构 167
6.1 变量的类型 167
6.1.1 全局变量与局部变量 167
6.1.2 变量的存储类型 168
6.1.3 变量在内存中的存储 171
6.2 标识符的作用域与可见性 174
6.2.1 函数原型作用域 174
6.2.2 块作用域 174
6.2.3 文件作用域 175
6.2.4 可见性 176
6.3 程序的文件结构与编译预处理命令 176
6.3.1 文件包括#include命令 176
6.3.2 不带参数的宏定义 178
6.3.3 带参数的宏定义 179
6.3.4 条件编译 180
6.4 名字空间 184
6.5 本章小结 186
习题6 186
第7章 类与对象 191
7.1 类与对象的概念 191
7.1.1 从面向过程到面向对象 191
7.1.2 类的定义 193
7.1.3 对象的建立与使用 196
7.1.4 成员的存取控制 197
7.2 构造函数与析构函数 198
7.2.1 构造函数 198
7.2.2 析构函数 200
7.2.3 拷贝构造函数 203
7.2.4 浅拷贝与深拷贝 207
7.3 对象的使用 208
7.3.1 对象指针 208
7.3.2 对象引用 211
7.3.3 对象数组 212
7.3.4 动态对象 214
7.3.5 this指针 216
7.3.6 组合对象 216
7.4 静态成员 223
7.4.1 静态数据成员 223
7.4.2 静态成员函数 225
7.5 友元 228
7.5.1 友元函数 228
7.5.2 友元类 230
7.6 常对象与常成员 233
7.6.1 常对象 233
7.6.2 常数据成员 234
7.6.3 常成员函数 235
7.8 本章小结 237
7.7.2 对象内存空间的释放 237
7.7.1 对象的内存空间分配 237
7.7 对象的内存分布 237
习题7 238
第8章 继承与派生 251
8.1 继承与派生的概念 251
8.1.1 继承的概念 251
8.1.2 派生类实现 253
8.1.3 继承与组合 255
8.2 继承的方式 256
8.2.1 公有继承 256
8.2.2 私有继承 259
8.2.3 保护继承 261
8.3 派生类的构造与析构 265
8.3.1 派生类构造函数的定义 265
8.3.2 单继承的构造与析构 266
8.4 类型兼容 269
8.5 多继承 272
8.5.1 多继承的构造与析构 272
8.5.2 二义性问题 272
8.6 虚基类 275
8.6.1 虚基类的定义 277
8.6.2 虚基类的构造与析构 278
8.7 本章小结 281
习题8 282
第9章 多态性 292
9.1 多态性概述 292
9.2 运算符重载 293
9.2.1 运算符重载机制 293
9.2.2 运算符重载规则 294
9.2.3 重载为类的友元函数 295
9.2.4 重载为类的成员函数 298
9.2.5 典型运算符重载 301
9.3 虚函数 307
9.3.1 静态联编与动态联编 307
9.3.2 虚函数的定义与使用 308
9.3.3 虚析构函数 312
9.4 抽象类 314
9.4.1 纯虚函数 314
9.4.2 抽象类与具体类 314
9.5 本章小结 317
习题9 318
第10章 类模板 329
10.1 类模板的概念 329
10.1.1 类模板的定义 329
10.1.2 类模板的实例化 331
10.1.3 默认模板参数 332
10.2.1 栈类模板 333
10.2 类模板应用 333
10.2.2 链表类模板 335
10.3 本章小结 338
习题10 338
第11章 C++输入输出流与文件系统 341
11.1 I/O流的概念 341
11.2 输出流 343
11.3 流的格式控制 345
11.3.1 格式标志 346
11.3.2 格式操纵符 348
11.3.3 格式控制成员函数 350
11.4 输入流 352
11.5 数据流的错误侦测 357
11.6 文件的输入输出 358
11.6.1 文件的创建 359
11.6.2 文本文件的输出 360
11.6.3 二进制文件输出 362
11.6.4 文本文件的输入 364
11.6.5 二进制文件输入 365
11.6.6 文件指针的使用 366
11.7 本章小结 369
习题11 369
第12章 string类字符串处理 375
12.1 string类对象的定义 375
12.2 string类成员函数 377
12.3 string类的操作符 378
12.4 string类串位置指针 380
12.5 string类串与C风格字符串的转化 381
12.6 本章小结 382
习题12 383
第13章 异常处理 384
13.1 异常的概念 384
13.2 C++异常处理机制 385
13.3 异常处理嵌套与重抛异常 388
13.3.1 异常处理嵌套 388
13.3.2 重抛异常 390
13.4 标准异常处理类 391
13.5 本章小结 393
习题13 393
附录A 数值的机内表示 396
A.1 数值的各种进制表示形式 396
A.2 整数值的机内表示 399
A.3 小数的机内表示 401
附录B C++语言中的关键字(保留字) 403
附录C 运算符优先级表 404
附录D ASCII码字符集 406
附录E GB2312-80汉字字符集 409
附录F GBK汉字字符集 411
参考文献 413