第1章 C++语言概述及Visual C++ 6.0控制台程序 1
1.1 编程语言的发展 1
1.1.1 编程和编程语言 1
1.1.2 编程语言的发展史 2
1.2 面向对象语言简介 2
1.2.1 面向对象的概念 2
1.2.2 面向对象语言的特点 4
1.3 面向过程与面向对象的区别 4
1.3.1 面向过程方法面临的问题 4
1.3.2 面向对象方法的特点 5
1.3.3 算法 6
1.4.2 C++语言对C语言扩充和增强的几点具体体现 7
1.4.1 C++对C语言的改进 7
1.4 C与C++语言的关系 7
1.5 C++语言结构上的特点 9
1.6 C++程序的实现 11
1.6.1 C++程序的编辑、编译和运行 12
1.6.2 编译出现的问题 12
1.6.3 Visual C++ 6.0编译系统的用法简介 13
1.7 程序是如何执行的 17
1.8 注意C中字母的大小有别 17
1.9 C++语言的知识结构图 18
第2章 基本数据类型、运算符和表达式 21
2.1 基本数据类型 21
2.1.1 常量和变量 21
2.1.2 C++语言的基本数据类型及其表示 24
2.2 运算符和表达式 31
2.2.1 给变量赋初值 31
2.2.2 运算符和表达式 32
2.2.3 数据类型的转换 37
2.3 C++的输入和输出 39
2.3.1 输出流对象cout使用介绍 39
2.3.2 输入流对象cin使用介绍 41
练习 42
第3章 C++语言基础部分 45
3.1 程序的三种基本结构 45
3.1.1 顺序结构 45
3.1.2 选择结构 46
3.1.3 循环结构 47
3.1.4 程序的流程图 48
3.2 选择控制语句 48
3.2.1 关系运算符和关系表达式 49
3.2.2 逻辑运算符和逻辑表达式 50
3.2.3 条件运算符和条件表达式 51
3.2.4 条件选择语句if 53
3.2.5 分支结构switch 58
3.3 循环控制语句 62
3.3.1 for循环语句 62
3.3.2 while循环语句 65
3.3.3 do while循环语句 67
3.3.4 多重循环语句 68
3.3.5 break语句和continue语句 69
练习 72
4.1 一维数组 75
4.1.1 一维数组的定义 75
第4章 数组 75
4.1.2 一维数组元素的赋值和初始化 76
4.1.3 一维数组的程序举例 79
4.2 二维数组 84
4.2.1 二维数组的定义 84
4.2.2 二维数组元素的赋值和初始化 85
4.2.3 二维数组程序举例 87
4.3 字符数组 89
4.3.1 字符数组的定义 89
4.3.2 字符数组的初始化 89
4.4.1 字符串的定义 90
4.4 字符串和字符串处理 90
4.4.2 字符串的初始化 91
4.4.3 字符串的输入输出 91
4.4.4 字符串处理函数 93
练习 103
第5章 函数和存储类 108
5.1 函数的定义与调用 108
5.1.1 什么是函数 108
5.1.2 函数的定义 109
5.1.3 函数的声明 115
5.1.4 函数的调用 115
5.2 参数传递 121
5.3 递归函数 122
5.4 内联函数 124
5.5 函数原型 128
5.6 重载函数 128
5.7 缺省参数 130
5.8 变量的作用域与生存期 131
5.8.1 变量的作用域 131
5.8.2 变量的生存期和存储类型 133
练习 137
第6章 编译预处理 141
6.1 宏定义 141
6.1.1 不带参数的宏定义 141
6.1.2 带参数的宏定义 143
6.2 文件包含 144
6.3 多文件程序 145
练习 146
第7章 指针和引用 148
7.1 指针 148
7.1.1 什么是指针 148
7.1.2 指针的定义 150
7.1.3 指针的运算 155
7.2 指针与数组 158
7.2.1 指针与数组的关系 158
7.2.2 应用举例 161
7.2.3 指针数组 167
7.3 指针、数组与函数 170
7.3.1 指针作函数的参数 170
7.3.2 数组与函数 173
7.3.3 用变量的地址作为函数的实参 175
7.3.4 返回指针的函数 176
7.4 利用指针动态分配内存 177
7.5 引用 181
7.5.1 独立引用 182
7.5.2 引用作为参数传递 183
7.5.3 引用作为返回类型 186
7.5.4 引用与指针的区别 187
练习 188
第8章 结构体和枚举类型 193
8.1 结构体类型 193
8.1.1 什么是结构体 193
8.1.2 结构体的定义 194
8.1.3 定义结构体变量 195
8.1.4 结构体变量的初始化 198
8.1.5 结构体数组 201
8.1.6 结构体指针 203
8.1.7 结构体与函数 207
8.2 枚举类型 212
8.2.1 枚举类型的定义 212
8.2.2 枚举变量的声明 213
8.2.3 枚举类型变量的赋值和使用 213
8.2.4 枚举类型的应用举例 214
练习 217
9.1 类和对象 220
9.1.1 新的数据类型“类”的引入 220
第9章 类与对象 220
9.1.2 类和对象 221
9.1.3 类的定义和实现 222
9.1.4 类的使用 223
9.1.5 类的定义及实现示例程序演示 224
9.1.6 提示:在Visual C++ 6.0的程序中添加一个类 225
9.2 存取访问控制 229
9.2.1 关键字public 229
9.2.2 关键字private 230
9.2.3 关键字protected 233
9.3 类与结构体 233
9.4 应用举例 234
练习 238
10.1 new和delete 239
第10章 深入了解“类” 239
10.1.1 new 240
10.1.2 delete 241
10.2 构造函数和析构函数 242
10.2.1 构造函数 242
10.2.2 析构函数 251
10.3 再谈new、delete和malloc、free 253
10.4 this指针 255
10.5 应用举例 258
练习 265
第11章 静态成员和友元 267
11.1 静态成员 267
11.1.1 静态数据成员 267
11.1.2 静态成员函数 271
11.2 友元 273
11.2.1 友元函数 274
11.2.2 友元类 276
11.3 应用举例 277
练习 280
第12章 运算符重载 281
12.1 明确目标:为什么要进行运算符重载 281
12.2 以成员函数实现运算符重载 282
12.2.1 重载一元运算符:递增运算符“++” 283
12.2.2 二元运算符重载:重载加运算符“+” 291
12.2.3 重载赋值运算符“=” 294
12.3.1 用友元函数重载加法运算符“+” 297
12.3 用友元函数重载运算符 297
12.3.2 重载输出运算符“〈〈” 300
12.4 应用举例 302
练习 310
第13章 继承 311
13.1 什么是继承 311
13.2 实现继承 313
13.2.1 单一继承 313
13.2.2 多重继承 318
13.2.3 多级继承 321
13.3 构造函数、析构函数与继承 322
13.3.1 何时执行构造函数和析构函数 322
13.3.2 将参数传送给基类的构造函数 324
13.4.1 友元与继承 329
13.4 继承与友元及静态成员的关系 329
13.4.2 静态成员与继承 331
13.5 应用举例 332
练习 337
第14章 虚函数与多态性 339
14.1 虚函数 339
14.1.1 为什么要引入虚函数 339
14.1.2 虚函数与函数重载的区别 345
14.1.3 虚函数与继承的关系 346
14.1.4 虚函数的层次性 346
14.1.5 析构函数与虚函数 348
14.2 纯虚函数 349
练习 351
15.1.1 I/O(输入/输出)控制符介绍 352
第15章 流和文件 352
15.1 格式化输出 352
15.1.2 格式化输出举例 353
15.2 文件流 356
15.2.1 文件的打开和关闭 356
15.2.2 文件读写操作举例 357
练习 361
第16章 模板 362
16.1 函数模板 362
16.2 类模板 365
练习 370
附录A ASCII表 371
附录B 常用库函数 372