第1章 C++基础知识 1
1.1 C++概述 1
1.1.1 C++语言的历史和特点 1
1.1.2 C++程序与C程序 2
1.1.3 C++对C的扩充 3
1.2 C++的输入输出 7
1.2.1 用cout进行输出 7
1.2.2 用cin进行输入 8
1.3 引用 9
1.3.1 引用的概念 9
1.3.2 引用的使用 10
1.3.3 引用作为函数参数 11
1.3.4 引用作为返回值 15
1.4 const常量与new、delete运算符 16
1.4.1 用const定义常量 16
1.4.2 动态分配/撤销内存的运算符new和delete 18
本章小结 21
习题 22
第2章 类和对象 24
2.1 面向对象程序设计 24
2.2 类的定义 25
2.2.1 从结构体到类 25
2.2.2 类的定义格式 26
2.3 对象的定义 27
2.3.1 对象的定义格式 27
2.3.2 对象成员的访问 27
2.4 类的数据成员与成员函数 28
2.4.1 类的数据成员 28
2.4.2 类的成员函数 28
2.4.3 类外定义成员函数 33
2.4.4 作用域运算符:: 34
2.4.5 声明成员函数为内联函数 35
2.4.6 外部接口与内部实现的分离 36
2.5 程序实例 37
本章小结 46
习题 47
第3章 深入了解类和对象 49
3.1 构造函数 49
3.1.1 为什么要使用构造函数 49
3.1.2 构造函数的特点 49
3.1.3 构造函数的种类 50
3.2 析构函数 54
3.2.1 析构函数的特点 54
3.2.2 析构函数的格式 55
3.2.3 默认析构函数 57
3.3 复制构造函数 57
3.3.1 类对象的复制 57
3.3.2 复制构造函数的调用时机 59
3.3.3 深复制与浅复制问题 60
3.4 对象指针、对象引用和对象数组 62
3.4.1 对象指针 62
3.4.2 对象引用 62
3.4.3 对象数组 63
3.4.4 对象指针数组 64
3.4.5 指向对象数组的指针 65
3.5 常对象与常成员 66
3.5.1 常对象 66
3.5.2 常成员 67
3.5.3 指向对象的常指针 68
3.5.4 指向常对象的指针 69
3.5.5 对象的常引用 70
3.6 动态创建对象和释放对象 71
3.6.1 动态创建对象 71
3.6.2 释放对象 72
3.6.3 动态对象数组的创建与释放 72
3.7 对象的生存期 72
3.8 程序实例 74
本章小结 76
习题 76
第4章 静态成员与友元 83
4.1 静态成员 83
4.1.1 静态数据成员 83
4.1.2 静态成员函数 86
4.2 友元 89
4.2.1 友元函数 89
4.2.2 友元类 91
4.3 模板 93
4.3.1 函数模板 93
4.3.2 类模板 96
4.4 程序实例 101
本章小结 104
习题 104
第5章 运算符重载 110
5.1 运算符重载的概念 110
5.2 运算符重载的方法 111
5.2.1 重载为成员函数 111
5.2.2 重载为友元函数 112
5.3 运算符重载的规则 114
5.4 常用运算符的重载 114
5.4.1 算术运算符的重载 115
5.4.2 关系运算符的重载 116
5.4.3 逻辑运算符的重载 117
5.4.4 位移运算符的重载 119
5.4.5 下标访问运算符的重载 120
5.4.6 赋值运算符的重载 121
5.4.7 流输出与流输入运算符的重载 124
5.4.8 不同类型数据之间的转换 125
5.5 字符串类 127
5.5.1 string字符串类简介 128
5.5.2 string类对象的赋值与连接 130
5.5.3 string类对象的比较 131
5.5.4 string类的特性 132
5.6 程序实例 134
本章小结 138
习题 138
第6章 继承与派生 142
6.1 继承的概念 142
6.2 派生类的定义与构成 144
6.2.1 派生类的定义 144
6.2.2 派生类的构成 144
6.2.3 派生类对基类成员的访问 147
6.2.4 多层派生时的访问属性 148
6.3 派生类的构造函数与析构函数 149
6.3.1 派生类的构造函数 149
6.3.2 派生类的析构函数 155
6.3.3 基类与派生类的赋值兼容 156
6.4 多重继承 157
6.4.1 多重继承中的二义性问题 159
6.4.2 虚基类 160
6.4.3 虚基类的构造函数 161
6.5 多态性与虚函数 163
6.5.1 多态性 163
6.5.2 虚函数 164
6.5.3 虚析构函数 167
6.5.4 纯虚函数与抽象类 168
6.6 程序实例 172
本章小结 174
习题 174
第7章 输入输出流 178
7.1 输入输出概述 178
7.2 标准输入输出 180
7.2.1 标准输入输出流类 180
7.2.2 格式控制 181
7.2.3 输入输出流成员函数 187
7.3 文件输入输出 194
7.3.1 文件的概念 194
7.3.2 文件输入输出流类 195
7.3.3 输入输出流成员函数 198
7.4 字符串输入输 202
7.5 程序实例 203
本章小结 206
习题 207
第8章 异常处理 208
8.1 异常的概念 208
8.2 异常处理的方法 209
8.3 异常处理的规则 215
8.4 类和对象相关异常处理 215
8.5 标准异常 220
8.6 程序实例 223
本章小结 225
习题 225
第9章 综合实例 228
9.1 学生信息管理系统 228
9.1.1 功能介绍 228
9.1.2 设计思路 229
9.1.3 实现代码 231
9.2 家庭财务管理系统 236
9.2.1 功能介绍 236
9.2.2 设计思路 237
9.2.3 实现代码 240
本章小结 249
习题 249
附录1 ASCII码表 250
附录2 C++运算符优先级与结合性 252
附录3 C++集成开发环境 254
附录3.1 Visual C++6.0 254
附录3.2 VC++ 2015 258
参考文献 264