第1章 C++概述 1
1.1 C++的起源 1
1.2 C++的特点 1
1.3 简单C++程序 2
1.4 C++上机操作 5
1.4.1 C++程序的开发步骤 5
1.4.2 C++程序上机操作方法 5
本章小结 9
习题1 10
第2章 数据类型和表达式 11
2.1 数据类型 11
2.2 常量和变量 13
2.2.1 常量 13
2.2.2 变量 16
2.3 运算符和表达式 17
2.3.1 算术运算符和算术表达式 18
2.3.2 赋值运算符和赋值表达式 20
2.3.3 关系运算符和关系表达式 22
2.3.4 逻辑运算符和逻辑表达式 23
2.3.5 逗号运算符和逗号表达式 24
2.3.6 位运算符 24
2.3.7 数据类型长度运算符(sizeof运算符) 26
2.4 简单的输入和输出 26
2.4.1 数据输出cout 27
2.4.2 数据输入cin 28
2.4.3 简单的输入/输出格式控制 28
本章小结 30
习题2 31
第3章 程序结构和流程控制语句 34
3.1 程序的三种基本结构和语句 34
3.1.1 程序的三种基本结构 34
3.1.2 C++程序的组成 35
3.1.3 C++语言的语句 36
3.2 分支语句 37
3.2.1 if语句 37
3.2.2 条件运算符和条件表达式 42
3.2.3 switch语句 43
3.3 循环语句 46
3.3.1 while语句 47
3.3.2 do…while语句 48
3.3.3 for语句 50
3.3.4 三种循环语句的比较 53
3.3.5 循环语句的嵌套 53
3.4 控制执行顺序的语句 55
3.4.1 break语句 55
3.4.2 continue语句 56
3.4.3 语句标号和goto语句 57
3.4.4 exit()和abort()函数 59
3.5 程序设计举例 59
本章小结 65
习题3 67
第4章 数组 70
4.1 数组的定义和应用 70
4.1.1 一维数组的定义和使用 70
4.1.2 多维数组的定义和使用 76
4.2 字符数组的定义和使用 81
4.2.1 字符数组和字符串 81
4.2.2 字符串处理函数 83
4.2.3 字符数组应用举例 85
本章小结 88
习题4 89
第5章 函数 93
5.1 函数的定义和调用 93
5.1.1 函数概述 93
5.1.2 函数的定义 95
5.1.3 函数的调用 95
5.1.4 函数的形参、实参、返回值及函数的原型说明 97
5.2 函数的嵌套调用和递归调用 101
5.2.1 函数的嵌套调用 101
5.2.2 函数的递归调用 102
5.3 数组做函数参数 106
5.3.1 数组元素做函数实参 106
5.3.2 数组名做函数参数 107
5.4 变量的存储类型 110
5.4.1 作用域 110
5.4.2 局部变量与全局变量 113
5.4.3 动态变量与静态变量 113
5.4.4 变量的存储类型 114
5.5 内联函数 120
5.6 具有默认参数值的函数 121
5.7 函数的重载 122
本章小结 124
习题5 126
第6章 编译预处理 132
6.1 文件包含处理 132
6.2 宏定义 135
6.2.1 不带参数的宏定义 135
6.2.2 带参数的宏定义 137
6.3 条件编译 139
本章小结 142
习题6 143
第7章 指针 144
7.1 指针与指针变量 144
7.1.1 指针的概念 144
7.1.2 指针变量的定义与引用 144
7.1.3 指针变量的运算 146
7.2 指针与数组 151
7.2.1 一维数组与指针 151
7.2.2 二维数组与指针 153
7.2.3 字符串与指针 156
7.3 指针数组和指向指针的指针变量 158
7.3.1 指针数组 158
7.3.2 指向一维数组的指针变量 160
7.3.3 指向指针的指针变量 162
7.4 指针与函数 162
7.4.1 指针变量作为函数参数 162
7.4.2 数组与指针作为函数参数 164
7.4.3 返回指针值的函数 168
7.4.4 函数指针变量 170
7.5 new和delete运算符 173
7.5.1 new运算符 173
7.5.2 delete运算符 173
7.5.3 使用new和delete运算符应注意的事项 175
7.6 引用类型变量和const类型的指针 175
7.6.1 引用类型变量的定义及使用 175
7.6.2 const类型变量 177
本章小结 178
习题7 181
第8章 枚举型、结构体和共同体 184
8.1 枚举类型的定义及应用 184
8.1.1 枚举类型的定义 184
8.1.2 枚举类型变量的定义 185
8.1.3 枚举类型变量的引用 185
8.2 结构体的定义及应用 188
8.2.1 结构体类型的定义 189
8.2.2 结构体变量的定义 189
8.2.3 结构体变量的引用 191
8.2.4 结构体数组 193
8.3 共同体的定义及应用 195
8.3.1 共同体类型 195
8.3.2 共同体类型变量的定义 196
8.3.3 共同体类型变量的引用 197
8.3.4 共同体类型的特点 197
8.4 链表 197
8.4.1 链表的概念 197
8.4.2 链表的基本操作 198
8.5 类型定义 208
本章小结 210
习题8 212
第9章 类和对象 214
9.1 概述 214
9.2 类与对象 215
9.2.1 类 215
9.2.2 对象 220
9.3 构造函数 224
9.3.1 构造函数的定义 224
9.3.2 用构造函数初始化对象的过程 226
9.3.3 默认的构造函数 227
9.3.4 拷贝的构造函数 228
9.3.5 构造函数和new运算符 230
9.4 析构函数 231
9.4.1 定义析构函数 231
9.4.2 析构函数的调用 231
9.4.3 不同存储类型的对象调用构造函数及析构函数 234
9.4.4 默认的析构函数 234
9.5 构造函数和对象成员 235
9.6 this指针 238
本章小结 238
习题9 240
第10章 继承和派生类 244
10.1 继承与派生 244
10.1.1 继承与派生的基本概念 244
10.1.2 派生类的定义 246
10.1.3 派生类的构造函数与基类成员的初始化 248
10.2 冲突、支配规则和赋值兼容性 258
10.2.1 冲突 258
10.2.2 支配规则 261
10.2.3 赋值兼容规则 262
10.2.4 基类和对象成员的几点说明 263
10.3 虚基类 263
10.3.1 多重派生的基类拷贝 263
10.3.2 虚基类 264
10.4 静态成员 266
10.4.1 静态数据成员 267
10.4.2 静态成员函数 269
本章小结 272
习题10 273
第11章 友元与运算符重载 277
11.1 友元函数 277
11.1.1 定义普通函数为友元函数 277
11.1.2 定义成员函数为友元函数 278
11.1.3 一个类定义成另一个类的友元 280
11.1.4 友元注意事项 281
11.2 运算符重载 282
11.2.1 运算符重载的概念 282
11.2.2 二元运算符重载函数 282
11.2.3 一元运算符的重载 288
11.2.4 转换函数 297
11.2.5 字符串类运算符重载 298
11.2.6 赋值运算符和赋值运算符重载 302
11.3 多态性与虚函数 303
11.3.1 多态性技术 303
11.3.2 虚函数 304
11.3.3 纯虚函数 307
11.4 类与对象的特性 313
本章小结 314
习题11 316
第12章 流类体系与文件操作 318
12.1 流类体系 318
12.1.1 流(Stream) 318
12.1.2 基本流类体系 319
12.1.3 标准输入/输出流 320
12.1.4 流的格式控制 321
12.1.5 数据输入/输出成员函数 327
12.1.6 重载提取与插入运算符 329
12.2 文件操作 331
12.2.1 C++文件概述 331
12.2.2 C++的文件流类体系 331
12.2.3 文件的使用方法 332
12.2.4 文本文件的使用 336
12.2.5 二进制文件的使用 341
本章小结 351
习题12 353
附录A C++中的关键字 355
附录B 常用库函数 357
参考文献 360