第1章 C++编程基础 1
1.1 C++语言概述 1
1.1.1 程序语言的发展 1
1.1.2 从C语言到C++语言 2
1.1.3 C++语言的特点 3
1.2 初识C++程序 4
1.2.1 C++程序简单实例 4
1.2.2 C++程序的组成 6
1.3 C++程序开发过程 7
习题 8
第2章 C++语言基础知识 9
2.1 关键字与标识符 9
2.2 基本数据类型 10
2.3 常量和变量 12
2.3.1 常量 12
2.3.2 变量 14
2.4 运算符与表达式 15
2.4.1 算术运算 16
2.4.2 赋值运算 17
2.4.3 自增、自减运算 19
2.4.4 关系运算与逻辑运算 20
2.4.5 条件运算 23
2.4.6 逗号运算 24
2.5 类型转换 25
2.6 数据的输入和输出 27
习题 28
第3章 程序控制结构 31
3.1 语句及语句块 31
3.2 顺序结构 32
3.3 选择结构 34
3.3.1 if语句 34
3.3.2 switch语句 36
3.4 循环结构 38
3.4.1 while循环 38
3.4.2 do-while循环 39
3.4.3 for循环 40
3.5 转向语句 43
3.5.1 break语句 43
3.5.2 continue语句 45
3.5.3 goto语句 46
3.6 结构程序设计举例 47
习题 52
第4章 函数 53
4.1 函数的定义 53
4.1.1 函数的基本概念 53
4.1.2 函数定义的一般形式 54
4.1.3 return语句 55
4.2 函数的声明和调用 57
4.2.1 函数的声明 57
4.2.2 函数的调用 58
4.2.3 函数调用的数据传递方式 60
4.2.4 函数的默认参数 60
4.2.5 函数的嵌套调用 62
4.2.6 函数的递归调用 63
4.3 内联函数 65
4.4 变量的作用域 66
4.5 变量的存储类别 68
4.5.1 内部变量的存储类别 69
4.5.2 外部变量的存储类别 70
4.6 函数重载 72
4.6.1 函数重载的条件 72
4.6.2 重载函数产生二义性 74
习题 76
第5章 指针和引用 77
5.1 指针 77
5.1.1 地址 77
5.1.2 指针的定义 78
5.2 指针变量 79
5.2.1 指针变量的定义 79
5.2.2 指针变量的使用 79
5.2.3 用const限制指针 82
5.3 指针和函数 82
5.3.1 指针变量作函数参数 82
5.3.2 函数返回地址值 84
5.3.3 指向函数的指针变量 85
5.4 动态内存申请 89
5.5 引用 90
5.5.1 引用的概念和声明 90
5.5.2 引用作为参数传递 91
5.5.3 引用作为返回类型 92
习题 93
第6章 构造数据类型 95
6.1 数组 95
6.1.1 一维数组 95
6.1.2 二维数组 102
6.1.3 指针数组 107
6.1.4 动态数组 108
6.2 结构体 109
6.2.1 结构体类型 110
6.2.2 结构体和函数 113
6.3 枚举类型 115
6.4 共用体类型 117
习题 119
第7章 类和对象 121
7.1 面向对象程序设计 121
7.1.1 面向对象的概念 121
7.1.2 面向对象语言的特点 122
7.1.3 面向过程与面向对象的区别 123
7.2 类和对象 124
7.2.1 类的定义 124
7.2.2 类成员的访问控制 127
7.2.3 对象的定义 128
7.2.4 访问类成员 129
7.3 构造函数和析构函数 130
7.3.1 对象的初始化 130
7.3.2 无参构造函数 131
7.3.3 带参数的构造函数 132
7.3.4 重载构造函数 134
7.3.5 析构函数 136
7.3.6 拷贝构造函数 138
7.4 const对象与const成员 141
7.5 this指针 143
7.6 静态成员 144
7.6.1 静态数据成员 144
7.6.2 静态成员函数 146
7.7 友元 148
7.7.1 友元函数 148
7.7.2 友元类 150
习题 152
第8章 运算符重载 153
8.1 运算符重载的引入 153
8.2 运算符重载规则 154
8.3 用成员函数或友元函数重载运算符 156
8.3.1 用成员函数重载运算符 156
8.3.2 用友元函数重载运算符 158
8.4 运算符重载范例 160
8.5 类的类型转换 164
8.5.1 转换构造函数 164
8.5.2 类型转换函数 165
习题 168
第9章 继承 169
9.1 类之间的关系 169
9.2 基类和派生类 169
9.2.1 派生类的定义 169
9.2.2 派生类的访问控制 171
9.2.3 派生类的构造函数和析构函数 177
9.3 多继承 180
9.3.1 多继承派生类的构造和析构 180
9.3.2 二义性问题 182
9.3.3 虚基类 187
习题 190
第10章 虚函数与多态 194
10.1 多态性和静态联编 194
10.2 类指针的关系 196
10.3 虚函数和动态联编 199
10.3.1 引入虚函数的原因 199
10.3.2 虚函数的使用说明 203
10.3.3 动态联编 206
10.3.4 虚析构函数 207
10.4 纯虚函数和抽象类 209
习题 211
第11章 模板 212
11.1 模板简介 212
11.2 函数模板 212
11.2.1 定义函数模板 212
11.2.2 重载模板 216
11.3 类模板 218
11.3.1 类模板的定义与使用 218
11.3.2 类模板继承 222
习题 224
第12章 输入/输出流 225
12.1 流类和流对象 225
12.2 标准流对象和流操作 226
12.2.1 标准流对象 226
12.2.2 输入流操作 227
12.2.3 输出流操作 230
12.2.4 流错误状态 231
12.3 格式控制 232
12.3.1 流格式状态标识及格式化函数 232
12.3.2 格式控制符 235
12.4 字符串流 237
12.5 文件处理 239
12.5.1 文件和流 239
12.5.2 打开和关闭文件 240
12.5.3 文本文件的读/写 241
12.5.4 二进制文件的读/写 243
12.5.5 随机文件的读/写 245
习题 247
第13章 异常处理 248
13.1 C++语言中的异常处理机制 248
13.2 异常处理实现 248
13.2.1 简单异常处理 248
13.2.2 类类型异常处理 251
13.2.3 重新抛出异常 254
13.2.4 带异常声明的函数原型 255
习题 256
参考文献 257