第1章 C语言的基本概念 1
1-1 程序语言 2
1-1-1 为什么需要程序语言 2
1-1-2 高级语言 3
1-2 C语言的演化 3
1-3 Microsoft Visual C++ 6.0的安装 4
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画面概述 20
1-5 C语言程序结构 21
1-5-1 程序设计步骤 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语言的数据类型与变量声明 32
2-1-1 常量与变量 32
2-1-2 整数 33
2-1-3 浮点数 34
2-1-4 字符 34
2-2 输入与输出 35
2-3 运算符和表达式 40
2-3-1 数学运算表达式 40
2-3-2 赋值表达式 42
2-3-3 逻辑关系表达式 42
2-3-4 位运算表达式 43
2-3-5 数据类型的转换与强制转换数据类型运算符 47
2-3-6 运算符优先级 48
温故知新 53
自我突破习题 53
第3章 程序流程控制 55
3-1 循环结构 56
3-1-1 for语句 56
3-1-2 while语句 64
3-1-3 do ...while语句 68
3-2 条件流程控制 71
3-2-1 if语句 71
3-2-2 else if语句 74
3-3 多重分支结构(switch...case) 77
3-4 中断分支与循环语句 82
3-4-1 中断分支break语句 82
3-4-2 continue语句 85
3-5 条件运算符(?:) 89
3-6 跳转语句(goto) 93
温故知新 94
自我突破习题 95
第4章 数组与指针 99
4-1 数组 100
4-1-1 数值数组数据的赋值 100
4-1-2 字符数组数据的赋值 107
4-2 多维数组 111
4-2-1 数值二维数组数据的赋值 112
4-2-2 字符二维数组数据的赋值 117
4-3 指针 119
4-3-1 指针的意义 119
4-3-2 指针的运算 120
4-4 动态分配内存 123
4-4-1 new配置内存 123
4-4-2 delete释放内存 127
4-5 指针与数组 129
4-5-1 指针与一维数组 129
4-5-2 指针与多维数组 131
4-5-3 指针与字符数组 133
温故知新 133
自我突破习题 134
第五章 函数与函数库 137
5-1 函数定义 138
5-2 参数传递 140
5-2-1 传值调用 141
5-2-2 传址调用 143
5-3 C++常用函数 146
5-3-1 数学函数 146
5-3-2 随机数函数 151
5-3-3 字符串函数 153
5-3-4 数据转换函数 157
5-3-5 输入输出函数 160
5-4 递归函数(Recursive Functions) 167
5-5 内联函数 170
温故知新 171
自我突破习题 171
第6章 特殊数据类型与定义 175
6-1 枚举(enum) 176
6-2 用户自定义类型名称(typedef) 178
6-3 结构(struct) 180
6-3-1 结构的定义与存取 180
6-3-2 函数中结构数据的传递 184
6-4 预处理器指令 188
6-4-1 #define与#undef 188
6-4-2 #include 190
6-4-3 #if...#else...#endif与#elif 193
6-4-4 #ifdef与#ifndef 195
6-5 变量的作用范围 196
6-5-1 自动变量(auto) 196
6-5-2 静态变量(static) 197
6-5-3 外部变量(extern) 199
6-5-4 静态外部变量(static extern) 201
6-5-5 寄存器变量(register) 202
温故知新 202
自我突破习题 202
第7章 对象与类 205
7-1 面向对象的基本概念 206
7-1-1 什么是对象 206
7-1-2 面向对象设计的优点 208
7-2 加上行为的结构——类 208
7-2-1 类的意义 208
7-2-2 类的设计方法 210
7-2-3 类中成员的种类 214
7-2-4 嵌套类 216
7-3 构造函数与析构函数 217
7-3-1 构造函数的基本概念 217
7-3-2 设定对象的初始值 218
7-3-3 构造函数重载 229
7-3-4 析构函数 230
7-4 对象的声明与操作 230
7-4-1 对象的声明 230
7-4-2 对象的指定 231
7-4-3 动态配置对象 232
温故知新 234
自我突破习题 235
第8章 继承与派生类 239
8-1 派生类 240
8-1-1 继承的概念 240
8-1-2 派生类——公共派生 242
8-1-3 派生类——私有派生 249
8-1-4 派生类——保护派生 250
8-1-5 派生的原则 252
8-1-6 派生类的构造函数与析构函数 253
8-2 多重继承 255
8-2-1 基本概念 255
8-2-2 构造函数的定义 255
8-2-3 成员函数的存取 258
8-3 类的层次 259
8-3-1 单一类层次 259
8-3-2 多重类层次 261
8-4 虚基类 263
8-4-1 使用时机 263
8-4-2 构造函数的存取 265
8-4-3 析构函数的存取 271
8-4-4 虚基类成员的存取 272
温故知新 273
自我突破习题 274
第9章 虚函数与友元函数 279
9-1 多态 280
9-2 虚函数 281
9-2-1 定义与声明 281
9-2-2 存取关系 284
9-2-3 动态链接 292
9-2-4 纯虚函数 296
9-3 友元函数与友元类 298
9-3-1 友元函数 298
9-3-2 友元类 300
9-4 this指针 303
温故知新 305
自我突破习题 306
第10章 重载 309
10-1 函数重载 310
10-1-1 一般函数重载 310
10-1-2 构造函数重载 311
10-1-3 复制构造函数 315
10-2 运算符重载 319
10-2-1 运算符函数 319
10-2-2 二元运算符的重载(一) 321
10-2-3 二元运算符的重载(二) 326
10-2-4 一元运算符的重载 331
10-2-5 等号运算符的重载 334
10-3 类的类型转换 337
10-3-1 利用构造函数转换类型 337
10-3-2 类类型转换成其他类型 339
温故知新 340
自我突破习题 341
第11章 模板 347
11-1 什么是模板 348
11-2 函数模板 350
11-2-1 套用一般数据类型的函数模板 350
11-2-2 套用自定义类型的函数模板 353
11-3 类模板 357
11-3-1 定义及使用方法 357
11-3-2 具有固定类型的类模板 359
11-3-3 一个类模板范例——串行队列 362
温故知新 376
自我突破习题 376
第12章 输入与输出流 379
12-1 流 380
12-2 输出流cout 382
12-2-1 串联输出 382
12-2-2 字符与字符串输出 382
12-2-3 清除缓冲区flush() 383
12-2-4 设定输出格式 383
12-3 输入流cin 389
12-3-1 串联输入 389
12-3-2 单一字符输入get 389
12-3-3 字符串输入getline()和ignore() 391
12-4 文件的输入与输出 393
12-4-1 简单的文件I/O处理 394
12-4-2 高级文件处理 397
12-4-3 随机访问文件 409
温故知新 414
自我突破习题 415
附录A C++关键字 417
附录B ASCII码字符对照表 419