第1章 C++基础知识 1
1.1 程序设计语言的基本概念 1
1.2 C++程序的基本结构 2
1.2.1 C++程序结构 3
1.2.2 C++程序的书写格式 4
1.3 一个应用程序的开发过程 5
1.3.1 Visual C++ 6.0开发环境 5
1.3.2 一个应用程序的开发过程 5
1.4 C++的词法规则 9
1.4.1 C++的字符集组成 9
1.4.2 C++的单词及其构词规则 9
1.5 C++基本数据类型 10
1.6 常量与变量 12
1.6.1 常量 12
1.6.2 变量 15
1.7 运算符与表达式 18
1.7.1 算术运算符与算术表达式 18
1.7.2 关系运算符与关系表达式 19
1.7.3 逻辑运算符与逻辑表达式 20
1.7.4 位运算符与位运算表达式 21
1.7.5 赋值运算符与赋值表达式 23
17.6 三目运算符与三目条件表达式 24
1.7.7 逗号运算符与逗号表达式 25
1.7.8 指针运算 26
1.7.9 运算符的优先级和结合性 26
1.7.10 类型转换 28
习题一 29
第2章 程序控制结构 33
2.1 顺序结构 33
2.1.1 定义语句 33
2.1.2 表达式语句 33
2.1.3 复合语句 34
2.1.4 空语句 34
2.1.5 基本输入输出 34
2.2 选择结构 37
2.2.1 if语句 38
2.2.2 switch语句 42
2.3 循环结构 44
2.3.1 while语句 45
2.3.2 do...while语句 46
2.3.3 for语句 48
2.3.4 多重循环 50
2.4 控制转向语句 52
2.4.1 break语句 52
2.4.2 continue语句 53
2.4.3 goto语句 54
2.5 程序实例 55
习题二 61
第3章 函数与编译预处理 64
3.1 函数的概念 64
3.2 函数的定义与调用 66
3.2.1 函数的定义 66
3.2.2 函数的声明 67
3.2.3 函数的返回值 69
3.2.4 函数的调用 70
3.3 函数的参数传递 71
3.3.1 参数的值传递 72
3.3.2 参数的地址传递 73
3.3.3 带默认值的参数 74
3.4 函数的嵌套调用与递归调用 75
3.4.1 函数的嵌套调用 75
3.4.2 函数的递归调用 77
3.5 内置函数 81
3.5.1 内置函数的作用 81
3.5.2 内置函数的定义与使用 82
3.6 变量和函数的属性 84
3.6.1 变量的作用域 84
3.6.2 变量的生存期 89
3.6.3 内部函数和外部函数 93
3.7 编译预处理 94
3.7.1 宏定义 95
3.7.2 文件包含 97
3.7.3 条件编译 98
习题三 100
第4章 数组与指针 104
4.1 数组及其应用 104
4.1.1 数组的概念 104
4.1.2 一维数组 105
4.1.3 二维数组 110
4.1.4 数组作为函数的参数 115
4.2 指针及其应用 118
4.2.1 指针的概念 118
4.2.2 指针变量的定义及初始化 119
4.2.3 指针的运算 120
4.2.4 指针作函数参数 122
4.2.5 返回指针值的函数 124
4.2.6 指向函数的指针 125
4.3 指针与数组 128
4.3.1 指针与一维数组 128
4.3.2 数组名与指针作函数参数的进一步讨论 130
4.3.3 指针与二维数组 130
4.4 字符串 134
4.4.1 字符串的概念 134
4.4.2 字符串的存储表示法 135
4.4.3 字符串的输入与输出 137
4.4.4 字符串函数 137
4.4.5 字符串的简单应用举例 140
4.5 指针数组与多级指针 143
4.5.1 指针数组 143
4.5.2 多级指针 145
4.5.3 命令行参数 146
4.6 引用 147
4.6.1 变量的引用 147
4.6.2 引用作函数参数 148
4.6.3 引用作函数返回值 148
习题四 149
第5章 自定义数据类型 151
5.1 结构体类型 151
5.1.1 结构体类型的定义 151
5.1.2 结构体变量的定义 152
5.1.3 结构体变量的引用与初始化 154
5.1.4 结构体数组 155
5.1.5 结构体与函数 157
5.1.6 链表 159
5.2 共用体类型 164
5.2.1 共用体变量的定义 165
5.2.2 共用体变量的引用 166
5.2.3 共用体与结构体的联合使用 167
5.3 枚举类型 168
5.4 自定义类型 170
习题五 171
第6章 类与对象 174
6.1 从面向过程到面向对象 174
6.1.1 面向对象程序设计的基本概念 174
6.1.2 C++面向对象程序的结构 175
6.2 类与对象的定义 177
6.2.1 类的定义 177
6.2.2 对象的定义与使用 179
6.2.3 类与结构体的区别 181
6.3 对象的初始化 181
6.3.1 构造函数 182
6.3.2 析构函数 185
6.3.3 复制构造函数 186
6.4 对象数组与对象指针 190
6.4.1 对象数组 190
6.4.2 对象指针 191
6.4.3 指向类成员的指针 192
6.4.4 this指针 194
6.5 静态成员 195
6.5.1 静态数据成员 195
6.5.2 静态成员函数 196
6.6 友元 197
6.6.1 友元函数 197
6.6.2 友元类 198
6.7 常对象和常成员 200
6.7.1 常对象和常成员函数 200
6.7.2 常数据成员 201
6.8 程序实例 202
习题六 208
第7章 重载与模板 214
7.1 重载 214
7.1.1 函数重载 214
7.1.2 运算符重载 219
7.2 模板 234
7.2.1 函数模板 235
7.2.2 类模板 236
7.3 程序实例 238
习题七 246
第8章 继承与派生 248
8.1 继承与派生的概念 248
8.1.1 基类与派生类 248
8.1.2 继承与派生的作用 249
8.1.3 派生类的声明 250
8.2 派生类成员的访问控制 251
8.2.1 private、protected与public类成员 251
8.2.2 三种派生方式的定义 254
82.3 派生类成员访问控制规则 258
8.3 派生类的构造函数和析构函数 258
8.3.1 派生类构造函数和析构函数的声明 258
8.3.2 派生类构造函数和析构函数的构造规则 260
8.3.3 派生类构造函数和析构函数的调用顺序 260
8.4 多重继承 261
8.4.1 多重继承的声明与引用 261
8.4.2 虚基类 263
8.5 基类和派生类的转换 267
8.6 继承与组合 268
习题八 269
第9章 多态性与虚函数 271
9.1 多态性的概念 271
9.1.1 编译时的多态性 271
9.1.2 运行时的多态性 274
9.2 虚函数 275
9.2.1 虚函数的作用 276
9.2.2 虚函数的使用 278
9.2.3 多重继承与虚函数 280
9.2.4 虚析构函数 282
9.3 纯虚函数与抽象类 284
9.3.1 纯虚函数 284
9.3.2 抽象类 284
9.4 抽象类程序实例 285
习题九 289
第10章 输入输出流 291
10.1 C++的输入输出 291
10.1.1 C++流的概念 291
10.1.2 C++流类库 292
10.1.3 与iostream类库有关的头文件 294
10.1.4 插入与提取运算符的重载 295
10.2 标准输入输出流 295
10.2.1 标准流类 295
10.2.2 格式控制成员函数 296
10.2.3 数据输入输出成员函数 299
10.3 文件操作与文件流 301
10.3.1 文件的概念 301
10.3.2 文本文件的读写 303
10.3.3 二进制文件的读写 305
10.3.4 文件的随机读写 308
10.4 字符串流 311
10.4.1 字符串流的概念 311
10.4.2 字符串流的输出操作 312
10.4.3 字符串流的输入操作 313
习题十 315
参考文献 318