1.1 程序设计语言的发展 1
1.1.1 机器语言 1
1.1.2 汇编语言 1
第1章 C++与面向对象程序概述 1
1.1.3 高级语言 2
1.2 面向对象程序设计的特点 3
1.2.1 面向对象程序设计的基本概念 3
1.2.2 面向对象程序设计的特点 3
1.4 简单的C++程序 4
1.4.1 cout标准输出 4
1.3 C++语言的特点 4
1.4.2 cin标准输入 5
1.5 Visual C++ 6.0编程环境简介 5
1.5.1 Visual C++ 6.0界面介绍 6
1.5.2 编辑、编译和运行程序 6
1.5.3 程序调试 9
习题 10
第2章 数据类型与表达式 11
2.1 基本数据类型 11
2.1.1 整型数据 11
2.1.4 bool型数据 12
2.1.2 实型数据 12
2.1.3 字符型数据 12
2.2 常量与变量 13
2.2.1 常量 13
2.2.2 变量 16
2.3 运算符与表达式 16
2.3.1 算术运算符与算术表达式 16
2.3.2 赋值运算符与赋值表达式 19
2.3.3 关系运算符与关系表达式 19
2.3.4 逻辑运算符与逻辑表达式 20
2.3.6 sizeof运算符 21
2.3.5 条件运算符 21
2.4 位运算符 22
2.4.1 位运算符 22
2.4.2 位运算符应用举例 23
2.5 C++的构造类型 24
2.5.1 结构 24
2.5.2 联合 25
2.5.3 枚举 27
习题 27
3.1 C++语句概述 30
第3章 C++控制语句 30
3.2 选择结构 31
3.2.1 if语句 31
3.2.2 switch语句 35
3.2.3 程序举例 36
3.3 循环结构 39
3.3.1 while语句 39
3.3.2 do...while语句 40
3.3.3 for语句 41
3.3.4 continue语句、break语句与goto语句 42
3.3.5 程序举例 45
习题 46
第4章 函数 48
4.1 函数的定义与使用 48
4.1.1 函数的定义 48
4.1.2 函数的声明与调用 50
4.2 函数的参数传递 51
4.2.1 值传递 51
4.2.2 使用引用 52
4.3 函数的嵌套调用 53
4.4 函数的递归调用 56
4.5 内联函数 59
4.6 函数重载 60
4.7 带默认参数值的函数 61
4.7.1 带默认参数值的函数 62
4.7.2 带默认参数值函数产生的二义性 63
4.8 变量的存储类别 63
4.8.1 内部变量与外部变量 63
4.8.2 变量的存储类别 65
4.9 程序举例 67
习题 69
5.1.1 一维数组 71
5.1 数组 71
第5章 数组、指针与字符串 71
5.1.2 二维数组 74
5.1.3 字符数组 77
5.2 指针 83
5.2.1 地址与指针的概念 83
5.2.2 指针运算 86
5.2.3 用指针处理数组 88
5.3 动态内存分配 89
5.4 指针作为函数的参数 91
5.4.1 指针变量作为函数的参数 91
5.4.2 数组作为函数的参数 92
5.5.1 指针数组 94
5.5 指针数组与多级指针 94
5.5.2 多级指针 95
5.6 程序举例 97
习题 99
第6章 类与对象 101
6.1 类与对象 101
6.1.1 类与对象的概念 101
6.1.2 类的声明 101
6.1.3 成员的访问控制 104
6.1.4 类的成员函数 105
6.2 构造函数与析构函数 106
6.2.1 构造函数 107
6.2.2 析构函数 108
6.2.3 拷贝构造函数 111
6.3 类的组合 113
6.4 友元 116
6.4.1 友元函数 116
6.4.2 友元类 118
6.5 静态成员 119
6.5.1 静态数据成员 119
6.5.2 静态成员函数 122
6.6.1 对象数组 124
6.6 对象数组与对象指针 124
6.6.2 对象指针 126
6.7 this指针 127
习题 130
第7章 继承与派生 133
7.1 类的继承与派生 133
7.1.1 继承与派生的基本概念 133
7.1.2 派生类的声明 134
7.2 类的继承方式 136
7.2.1 公有继承 136
7.2.2 保护继承 137
7.2.3 私有继承 139
7.2.4 程序举例 140
7.3 派生类的构造过程和析构过程 143
7.3.1 派生类的构造过程 143
7.3.2 派生类的析构过程 145
7.3.3 程序举例 146
7.4 多继承 149
7.4.1 多继承的构造与析构 149
7.4.2 多继承的二义性 151
7.4.3 虚基类 155
7.4.4 程序举例 159
习题 161
第8章 多态性 165
8.1 运算符重载 165
8.1.1 问题的提出 165
8.1.2 运算符重载的格式与规则 167
8.2 运算符重载为类的成员函数 168
8.2.1 双目运算符重载 168
8.2.2 单目运算符重载 170
8.2.3 赋值运算符重载 172
8.3.2 运算符重载为友元函数 175
8.3.1 问题的提出 175
8.3 运算符重载为类的友元函数 175
8.4 虚函数 177
8.4.1 用虚函数实现动态多态 177
8.4.2 虚函数实现动态多态的机制 180
8.4.3 虚析构函数 181
8.4.4 纯虚函数与抽象类 183
习题 184
第9章 模板 189
9.1 函数模板 189
9.2 模板函数的覆盖 192
9.3 类模板 194
9.4 程序举例 198
习题 200
第10章 输入/输出流 202
10.1 输入/输出流概述 202
10.1.1 流的概念 202
10.1.2 流类库的结构 203
10.2 插入运算符及提取运算符 206
10.3 格式化输入输出 206
10.3.1 输出宽度控制setw和width 207
10.3.3 输出精度控制setprecision和precision 208
10.3.2 填充字符控制setfill和fill 208
10.3.4 其他格式状态 209
10.4 文件的输入输出 210
10.4.1 打开文件 210
10.4.2 写入文件 212
10.4.3 读取文件 213
10.4.4 文件读写位置指针 215
10.4.5 错误处理函数 216
10.4.6 关闭文件 216
10.5 输入输出文件流fstream 216
习题 218
参考文献 219