第1章 C语言的基本概念 1
1-1 程序语言 1
1-1-1 为什么需要程序语言 1
1-1-2 高级语言 2
1-2 C语言的演进 3
1-3 Microsoft Visual C++6.0的安装 3
1-4启动程序与画面简介 16
1-4-1 启动Visual C++ 16
1-4-2 Visual C++画面简介 17
1-4-3 启动MSDN Library 19
1-4-4 MSDN Library画面简介 19
1-5-1 程序设计的步骤 21
1-5 C语言程序结构 21
1-5-2 C语言程序结构 22
1-6 如何编写C语言程序 25
1-6-1 C语言程序的格式 25
1-6-2 编译式语言和解释式语言 25
1-6-3 Visual C++程序的编写与编译方法 26
温故知新 29
自我突破习题 29
第2章 数据类型与表达式 31
2-1 C语言的数据类型与变量声明 31
2-1-1 常量与变量 31
2-1-2 整型 32
2-1-3 浮点型 33
2-1-4 字符型 34
2-2 输入与输出 35
2-3 运算符和表达式 40
2-3-1 数学运算表达式 40
2-3-2 赋值表达式 41
2-3-3 逻辑关素表达式 42
2-3-4 位运算表达式 43
2-3-5 数据类型的转换与强制转型运算符 47
2-3-6 运算符优先级 48
温故知新 54
自我突破习题 54
3-1 循环结构 57
3-1-1 for语句 57
第3章 程序流程控制 57
3-1-2 while语句 66
3-1-3 do…while语句 71
3-2 条件流程控制 75
3-2-1 if语句 75
3-2-2 else if语句 78
3-3 多重分支结构(switch…case) 81
3-4 中断分支与循环跳转语句 87
3-4-1 中断分支break语句 87
3-4-2 循环跳转continue语句 90
3-5 条件运算符(?:) 95
3-6 无条件跳转语句(goto) 99
温故知新 100
自我突破习题 101
第4章 数组与指针 105
4-1 数组 105
4-1-1 数值数组的赋值 105
4-1-2 字符数组的赋值 112
4-2 多维数组 117
4-2-1 数值二维数组的赋值 117
4-2-2 字符二维数组的赋值 123
4-3 指针 125
4-3-1 指针的意义 125
4-3-2 指针的运算 126
4-4 动态内存配置 129
4-4-1 new配置内存 129
4-4-2 delete释放内存 133
4-5 指针与数组 135
4-5-1 指针与一维数组 135
4-5-2 指针与多维数组 138
4-5-3 指针与字符数组 139
温故知新 140
自我突破习题 141
第5章 函数与函数库 145
5-1 函数的定义 145
5-2 参数传递 147
5-2-1 传值调用 149
5-2-2 传址调用 151
5-3 C++常用函数 153
5-3-1 数学函数 154
5-3-2 随机数函数 159
5-3-3 字符串函数 162
5-3-4 数据转换函数 165
5-3-5 输入输出函数 169
5-4 递归函数(Recursive Functions) 176
5-5 内联函数(Inline Functions) 179
温故知新 180
自我突破习题 180
第6章 特殊数据类型 185
6-1 枚举(enum) 185
6-2 类型定义语句(typedef) 188
6-3-1 结构体的定义与引用 189
6-3 结构体(struct) 189
6-3-2 函数中结构体数据的传递 193
6-4 预处理指令(Preprocessor Directives) 198
6-4-1 #define与#undef 198
6-4-2 # include 200
6-4-3 #if…#else…#endif与#elif 204
6-4-4 #ifdef与#ifndef 206
6-5 变量的作用范围 206
6-5-1 自动变量(auto) 207
6-5-2 静态变量(static) 208
6-5-3 外部变量(extern) 210
6-5-4 静态外部变量(static extern) 212
自我突破习题 213
6-5-5 缓存器变量(register) 213
温故知新 213
第7章 类与对象 217
7-1 面向对象基本概念 217
7-1-1 什么是对象 217
7-1-2 面向对象设计的优点 219
7-2 加上行为的结构体一类(class) 219
7-2-1 类的意义 219
7-2-2 类的设计方法 221
7-2-3 类中成员的种类 224
7-2-4 类的聚集 226
7-3 构造函数(Constructor)与析构函数(Destructor) 228
7-3-1 构造函数的基本概念 228
7-3-2 设定对象的初始值 229
7-3-3 构造函数重载 239
7-3-4 析构函数(Destructor) 240
7-4 对象的定义与操作 241
7-4-1 对象的定义 241
7-4-2 对象的赋值 241
7-4-3 动态配置对象 243
温故知新 244
自我突破习题 245
第8章 继承与类派生 249
8-1 类派生 249
8-1-1 继承的概念 249
8-1-2 类派生一公有派生 252
8-1-3 类派生一私有派生 258
8-1-4 类派生一保护派生 260
8-1-5 派生的原则 261
8-1-6 派生类的构造函数与析构函数 262
8-2 多重继承 264
8-2-1 基本概念 264
8-2-2 构造函数的定义 265
8-2-3 成员函数的访问 267
8-3 类的层次结构 268
8-3-1 单一类层次结构 268
8-3-2 多重类层次结构 272
8-4 虚基类 274
8-4-1 使用时机 274
8-4-2 构造函数的调用 276
8-4-3 析构函数的调用 281
8-4-4 虚基类成员的调用 282
温故知新 283
自我突破习题 284
第9章 虚拟函数与友元函数 289
9-1 多态 289
9-2 虚函数 290
9-2-1 定义与声明 290
9-2-2 访问关系 293
9-2-3 动态链接 300
9-2-4 纯虚函数 304
9-3-1 友元函数 306
9-3 友元函数与友元类 306
9-3-2 友元类 308
9-4 this指针 311
温故知新 313
自我突破习题 314
第10章 重载 317
10-1 函数重载 317
10-1-1 一般函数重载 317
10-1-2 构造函数重载 318
10-1-3 拷贝构造函数 322
10-2 运算符重载 326
10-2-1 运算符函数 326
10-2-2 二元运算符的重载(一) 328
10-2-3 二元运算符的重载(二) 333
10-2-4 一元运算符的重载 338
10-2-5 等号运算符的重载 341
10-3 类型转换 343
10-3-1 利用构造函数进行类型转换 344
10-3-2 转换成其它类型 346
温故知新 347
自我突破习题 347
第11章 模板 353
11-1 什么是模板 353
11-2 函数模板 355
11-2-1 应用一般数据类型的函数模板 355
11-2-2 应用自定义类型的函数模板 358
11-3 类模板 362
11-3-1 定义及使用方法 362
11-3-2 具有固定类型的类模板 364
11-3-3 一个类模板范例——串行队列 367
温故知新 380
自我突破习题 380
第12章 输入与输出流 383
12-1 流 383
12-2 输出流cout的运作 385
12-2-1 串联输出 385
12-2-2 字符与字符串输出 386
12-2-3 清除缓冲区flush() 386
12-2-4 设定输出格式 387
12-3 输入流cin的运作 392
12-3-1 串联输入 392
12-3-2 单一字符输入get() 392
12-3-3 字符串输入getline()和ignore() 394
12-4 文件的输入与输出 396
12-4-1 简单的文件I/O处理 397
12-4-2 高级文件处理 400
12-4-3 随机存取文件 412
温故知新 417
自我突破习题 418
附录A C++关键字 421
附录B Ascll字符对照表 423