第1章 C++语言概述 1
1.1 C++语言的特点 1
1.2 C++标准库简介 2
1.3简单的C++程序 3
1.4程序的编辑、编译、连接与运行 5
1.5小结 6
习题一 7
第2章 C++编程基础 8
2.1 C++的词法规则 8
字符集 8
词汇 9
2.2 C++的数据类型 10
基本类型 10
常量与变量 12
自定义数据类型 21
扩展数据类型 24
类型转换 32
typedef与typeid 33
2.3表达式与语句 34
运算符与表达式 34
语句 39
2.4预处理命令 44
宏定义命令 44
文件包含命令 45
条件编译命令 45
2.5名字空间 47
名字空间声明 47
使用名字空间 48
标准名字空间std 49
2.6小结 50
习题二 50
第3章 函数与函数模板 52
3.1函数的定义与声明 52
3.2函数调用 53
如何调用函数 53
参数传递 53
函数的返回类型 57
嵌套调用与递归调用 59
如何调用库函数 60
3.3函数指针 61
3.4 static函数 62
3.5 inline函数 63
3.6函数重载 64
3.7带默认形参值的函数 65
3.8函数模板 66
函数模板的定义与使用 66
函数模板重载 69
函数模板专门化 70
使用标准库中的函数模板 71
3.9小结 72
习题三 73
第4章 类与类模板 74
4.1类与类对象的定义 74
类的定义 74
类对象 76
类的封装性和信息隐藏 78
4.2构造函数与析构函数 80
构造函数 80
析构函数 89
构造与析构的顺序 90
4.3赋值成员函数 93
4.4静态成员 96
静态数据成员 96
静态成员函数 97
4.5常成员 98
常数据成员 98
常成员函数 99
mutable 100
4.6指向成员的指针 101
成员指针的定义与使用 101
如何得到成员函数的地址 102
4.7组合类 103
4.8友元 105
友元函数 105
友元类 109
4.9类模板 110
类模板的定义与使用 110
类模板专门化 113
作为函数的参数及返回类型 114
使用标准库中的类模板 117
4.10小结 118
习题四 119
第5章 运算符重载 120
5.1运算符重载的概念 120
5.2运算符重载的规则 120
5.3运算符重载的两种形式 121
重载为类的成员函数 121
重载为类的友元函数 122
两种重载方式讨论 124
5.4特殊运算符重载举例 125
类型转换运算符 125
复合赋值运算符 126
自增和自减运算符 127
流提取运算符和流插入运算符 128
5.5函数对象 129
5.6小结 132
习题五 132
第6章 继承与派生 134
6.1基类与派生类 134
6.2对基类成员的访问控制 135
公有继承 135
私有继承 139
保护继承 139
6.3派生类的构造函数与析构函数 140
构造函数 140
析构函数 142
6.4组合与继承的选择 144
6.5多继承中的歧义 145
6.6虚基类 146
6.7类模板的继承与派生 148
6.8小结 151
习题六 152
第7章 多态 153
7.1多态性概述 153
7.2虚函数 154
虚函数的声明与应用 154
虚析构函数 157
7.3 C++如何实现动态绑定 158
7.4纯虚函数与抽象类 162
7.5小结 166
习题七 167
第8章 异常处理 168
8.1异常处理概述 168
8.2异常处理的实现 168
8.3带异常声明的函数 172
8.4成员函数抛出异常 173
一般成员函数抛出异常 173
构造函数抛出异常 174
析构函数抛出异常 175
8.5标准库中的异常类型 177
8.6小结 180
习题八 180
第9章 C++标准库 181
9.1标准库组织 181
9.2容器 183
容器的成员 184
顺序容器 186
顺序容器适配器 187
关联容器 190
近容器 192
9.3 string 193
9.4泛型算法 195
9.5迭代器 198
迭代器的分类 198
使用迭代器 199
9.6函数对象 202
9.7流类 207
标准流 208
文件流 209
串流 210
重载提取运算符和插入运算符 211
输入/输出成员函数 212
输入/输出格式控制 215
9.8数值计算 218
数学函数 218
向量计算 219
复数计算 221
泛型数值算法 222
随机数产生 223
9.9小结 226
附录A ASCII码表 227
参考文献 229