第1章 初识C++程序设计语言 1
1.1 计算机程序设计语言 1
1.1.1 机器语言与汇编语言 1
1.1.2 高级语言 2
1.1.3 面向过程与面向对象的程序设计
语言 2
1.2 C++程序设计语言 3
1.2.1 C++程序设计语言简介 3
1.2.2 简单的C++程序框架结构 4
1.2.3 标准命名空间 5
1.3 习题 6
第2章 C++语言编程基础 7
2.1 C++语言数据类型 7
2.1.1 标识符 7
2.1.2 基本数据类型 8
2.2 常量 9
2.2.1 整型常量 9
2.2.2 实型常量 9
2.2.3 字符型常量 10
2.2.4 字符串常量 10
2.2.5 符号常量 11
2.3 变量 11
2.3.1 变量的定义 11
2.3.2 变量的初始化 12
2.3.3 指针变量 12
2.3.4 引用变量 13
2.4 C++语言的基本语句 13
2.4.1 声明语句 13
2.4.2 表达式语句 13
2.4.3 空语句 13
2.4.4 复合语句 13
2.4.5 基本输入/输出语句 14
2.5 运算符与表达式 15
2.5.1 算术运算符与算术表达式 16
2.5.2 赋值运算符与赋值表达式 17
2.5.3 关系运算符和关系表达式 18
2.5.4 逻辑运算符和逻辑表达式 18
2.5.5 其他运算符及表达式 19
2.5.6 表达式中数据类型的转换 20
2.5.7 表达式的格式 21
2.6 程序的基本控制结构 21
2.6.1 顺序结构 22
2.6.2 分支结构 22
2.6.3 循环结构 27
2.6.4 转向语句 30
2.7 程序举例 32
2.8 习题 35
第3章 函数 37
3.1 函数的概念和定义 37
3.1.1 函数的概念 37
3.1.2 函数定义的基本形式 38
3.1.3 函数类型与返回值 38
3.2 函数的调用 40
3.2.1 函数调用的基本形式 40
3.2.2 函数的嵌套调用 42
3.2.3 函数的递归调用 43
3.2.4 函数的原型说明 45
3.3 函数的参数传递 46
3.3.1 函数的值传递 46
3.3.2 函数的地址传递 46
3.3.3 函数的引用传递 47
3.4 函数的其他特性 48
3.4.1 函数参数的默认值 48
3.4.2 函数重载 49
3.4.3 内联函数 51
3.4.4 exit函数和abort函数 51
3.4.5 指向函数的指针 51
3.5 编译预处理 53
3.5.1 文件包含 53
3.5.2 宏定义 54
3.5.3 条件编译 55
3.6 变量的作用域与存储类型 56
3.6.1 变量的作用域 56
3.6.2 变量的存储类型 58
3.7 程序举例 60
3.8 习题 65
第4章 数组 66
4.1 数组的概念与定义 66
4.1.1 一维数组 66
4.1.2 二维数组 68
4.2 字符数组与字符串 71
4.2.1 字符数组的定义及初始化 71
4.2.2 字符数组的使用 72
4.2.3 字符串处理函数 74
4.3 数组与指针 76
4.3.1 指针变量的运算 76
4.3.2 一维数组与指针 77
4.3.3 二维数组与指针 78
4.3.4 字符数组与指针 81
4.3.5 指针数组 82
4.4 数组与函数 83
4.4.1 一维数组与函数 83
4.4.2 二维数组与函数 86
4.5 程序举例 88
4.6 习题 94
第5章 结构体与简单链表 96
5.1 结构体 96
5.1.1 结构体类型 96
5.1.2 结构体类型的变量 97
5.2 动态空间 100
5.2.1 new运算符 100
5.2.2 delete运算符 100
5.3 简单链表 101
5.3.1 链表的概念 101
5.3.2 链表的基本操作 102
5.3.3 链表的应用 103
5.4 共用体 108
5.4.1 共用体类型 108
5.4.2 共用体类型变量的定义 108
5.4.3 共用体类型变量的引用 109
5.4.4 共用体类型变量的特点 109
5.5 程序举例 110
5.6 习题 113
第6章 类和对象 114
6.1 面向对象的程序设计 114
6.2 类 116
6.3 对象 117
6.3.1 对象的定义与使用 118
6.3.2 对象的指针及引用 118
6.3.3 对象赋值 119
6.4 类成员的访问控制 120
6.5 构造函数与析构函数 121
6.5.1 构造函数 121
6.5.2 默认构造函数 122
6.5.3 析构函数 123
6.5.4 拷贝构造函数 124
6.5.5 构造函数与成员初始化列表 125
6.6 this指针 127
6.7 静态成员 128
6.7.1 静态数据成员 128
6.7.2 静态成员函数 129
6.8 程序举例 130
6.9 习题 135
第7章 继承与多态性 136
7.1 继承与派生 136
7.1.1 派生类 136
7.1.2 派生成员及其访问权限 137
7.1.3 多继承 139
7.1.4 赋值兼容性 140
7.2 派生类的构造函数与析构函数 142
7.2.1 单继承时派生类的构造函数 142
7.2.2 多继承时派生类的构造函数 143
7.2.3 派生类的对象 144
7.2.4 派生类的析构函数 145
7.3 冲突及解决方法 145
7.3.1 冲突 146
7.3.2 支配规则 146
7.3.3 虚基类 147
7.4 虚函数与多态性 150
7.4.1 多态性的基本概念 150
7.4.2 虚函数实现动态多态性 151
7.4.3 纯虚函数与抽象类 153
7.5 程序举例 155
7.6 习题 159
第8章 友元函数与运算符重载 161
8.1 友元函数与友元类 161
8.1.1 友元函数 161
8.1.2 友元类 163
8.2 运算符重载 163
8.3 单目运算符重载 165
8.3.1 成员函数重载单目运算符 165
8.3.2 友元函数重载单目运算符 166
8.3.3 强制类型转换运算符重载 167
8.4 双目运算符重载 168
8.4.1 成员函数重载双目运算符 168
8.4.2 友元函数重载双目运算符 170
8.5 程序举例 171
8.6 习题 173
第9章 模板和异常处理 175
9.1 函数模板 175
9.1.1 函数模板的定义 175
9.1.2 函数模板的使用 176
9.1.3 重载函数模板 177
9.2 类模板 178
9.2.1 类模板的定义 178
9.2.2 类模板的使用 179
9.3 异常处理 180
9.3.1 异常处理的机制 180
9.3.2 异常处理的实现 180
9.4 程序举例 182
9.5 习题 187
第10章 输入/输出流 188
10.1 输入/输出流的概念 188
10.2 C++语言的基本流类体系 188
10.2.1 基本流类体系的构成 188
10.2.2 标准输入/输出流 189
10.2.3 使用流输入/输出 190
10.2.4 使用成员函数输入/输出 194
10.3 文件的输入/输出 196
10.3.1 文件概述 196
10.3.2 文件流类库 197
10.3.3 文件的基本操作 197
10.3.4 文本文件的操作 200
10.3.5 二进制文件的操作 202
10.4 程序举例 205
10.5 习题 207
附录 ASCII表 208
参考文献 209