第1章 面向对象程序设计 1
1.1 面向对象程序设计概述 1
1.1.1 面向对象程序设计的定义 1
1.1.2 面向对象程序设计的基本概念 2
1.1.3 面向对象程序设计的基本特征 4
1.2 面向对象程序设计的特点 8
1.2.1 面向过程程序设计的局限性 8
1.2.2 面向对象程序设计的主要优点 9
1.3 面向对象程序设计的语言 10
1.3.1 面向对象程序设计语言的发展概况 10
1.3.2 几种典型的面向对象程序设计语言 11
本章小结 12
习题 13
第2章 C++基础 14
2.1 C++的产生和特点 14
2.1.1 C++的产生 14
2.1.2 C++的特点 15
2.2 C++程序的结构特性 15
2.2.1 一个简单的C++示例程序 15
2.2.2 C++程序的结构特性 16
2.3 C++程序的编辑、编译、连接和运行 17
2.4 C++在非面向对象方面对C语言的扩充 18
2.4.1 注释行 18
2.4.2 C++的输入和输出 19
2.4.3 灵活的变量声明 21
2.4.4 结构、联合和枚举名 22
2.4.5 函数原型 23
2.4.6 const修饰符 25
2.4.7 void型指针 26
2.4.8 内联函数 27
2.4.9 带有默认参数值的函数 28
2.4.10 函数重载 29
2.4.11 作用域标识符“::” 31
2.4.12 强制类型转换 32
2.4.13 new和delete运算符 32
2.4.14 引用 35
本章小结 42
习题 42
第3章 类和对象(一) 46
3.1 类的构成 46
3.1.1 从结构体到类 46
3.1.2 类的构成概述 47
3.2 成员函数的定义 49
3.2.1 普通成员函数的定义 49
3.2.2 内联成员函数的定义 50
3.3 对象的定义和使用 51
3.3.1 类与对象的关系 51
3.3.2 对象的定义 52
3.3.3 对象中成员的访问 52
3.3.4 类的作用域和类成员的访问属性 54
3.3.5 对象赋值语句 55
3.4 构造函数与析构函数 56
3.4.1 构造函数 56
3.4.2 成员初始化列表 60
3.4.3 带默认参数的构造函数 61
3.4.4 析构函数 63
3.4.5 默认的构造函数和默认的析构函数 66
3.4.6 构造函数的重载 69
3.4.7 拷贝构造函数 71
3.4.8 浅拷贝和深拷贝 78
本章小结 81
习题 82
第4章 类和对象(二) 87
4.1 自引用指针this 87
4.2 对象数组与对象指针 90
4.2.1 对象数组 90
4.2.2 对象指针 93
4.2.3 string类 95
4.3 向函数传递对象 97
4.3.1 使用对象作为函数参数 97
4.3.2 使用对象指针作为函数参数 98
4.3.3 使用对象引用作为函数参数 99
4.4 静态成员 100
4.4.1 静态数据成员 100
4.4.2 静态成员函数 104
4.5 友元 107
4.5.1 友元函数 108
4.5.2 友元类 112
4.6 类的组合 114
4.7 共享数据的保护 117
4.7.1 常引用 117
4.7.2 常对象 118
4.7.3 常对象成员 119
4.8 C++程序的多文件组成 122
4.9 程序举例 123
本章小结 125
习题 126
第5章 继承与派生 135
5.1 继承与派生的概念 135
5.1.1 使用继承的原因 135
5.1.2 派生类的声明 137
5.1.3 基类成员在派生类中的访问属性 138
5.1.4 派生类对基类成员的访问规则 139
5.2 派生类的构造函数和析构函数 144
5.2.1 派生类构造函数和析构函数的调用顺序 144
5.2.2 派生类构造函数和析构函数的构造规则 145
5.3 调整基类成员在派生类中的访问属性的其他方法 151
5.3.1 同名成员 151
5.3.2 访问声明 152
5.4 多继承与虚基类 155
5.4.1 声明多继承派生类的方法 155
5.4.2 多继承派生类的构造函数与析构函数 157
5.4.3 虚基类 161
5.5 赋值兼容规则 166
5.6 程序举例 169
本章小结 172
习题 172
第6章 多态性与虚函数 176
6.1 多态性概述 176
6.1.1 虚函数的案例 177
6.1.2 虚函数的作用和定义 177
6.1.3 虚析构函数 181
6.1.4 虚函数与重载函数的关系 183
6.1.5 多继承与虚函数 184
6.2 纯虚函数和抽象类 185
6.2.1 纯虚函数 185
6.2.2 抽象类 186
6.3 程序举例 187
本章小结 190
习题 191
第7章 运算符重载 194
7.1 运算符重载概述 194
7.2 运算符函数重载为类的友元函数和成员函数 196
7.2.1 友元运算符重载函数 196
7.2.2 成员运算符重载函数 201
7.2.3 运算符重载应该注意的几个问题 205
7.3 几个常用运算符的重载 208
7.3.1 赋值运算符“=”的重载 208
7.3.2 下标运算符“[]”的重载 212
7.3.3 函数调用运算符“()”的重载 213
7.4 重载插入运算符和提取运算符 215
7.4.1 重载插入运算符“<<” 215
7.4.2 重载提取运算符“>>” 217
7.5 类型转换 218
7.5.1 标准类型间的转换 218
7.5.2 类类型与标准类型间的转换 219
7.6 程序举例 223
本章小结 225
习题 225
第8章 函数模板与类模板 229
8.1 模板的概念 229
8.2 函数模板 230
8.2.1 函数模板的声明 230
8.2.2 函数模板的使用 231
8.3 类模板 234
8.4 程序举例 239
本章小结 241
习题 241
第9章 C++的输入和输出 246
9.1 C++为何建立自己的输入/输出系统 246
9.2 C++的流库及其基本结构 247
9.2.1 C++的流 247
9.2.2 预定义的流对象 249
9.2.3 输入/输出流的成员函数 250
9.3 预定义类型输入/输出的格式控制 251
9.3.1 用流成员函数进行输入/输出格式控制 252
9.3.2 使用预定义的操作符进行输入/输出格式控制 255
9.3.3 使用用户自定义的操作符进行输入/输出格式控制 258
9.4 文件的输入/输出 259
9.4.1 文件概述 259
9.4.2 文件的打开与关闭 260
9.4.3 文本文件的读/写 263
9.4.4 二进制文件的读/写 265
9.5 程序举例 271
本章小结 272
习题 273
第10章 异常处理和命名空间 277
10.1 异常处理 277
10.1.1 异常处理概述 277
10.1.2 异常处理的方法 278
10.2 命名空间和头文件命名规则 282
10.2.1 命名空间 282
10.2.2 头文件命名规则 284
本章小结 284
习题 285
第11章 STL标准模板库 287
11.1 容器、算法和迭代器的基本概念 287
11.2 容器 288
11.2.1 vector容器 288
11.2.2 list容器 293
11.2.3 容器适配器 297
11.2.4 deque容器 301
11.2.5 set、multiset、map和multimap容器 302
本章小结 304
习题 304
第12章 面向对象程序设计方法与实例 308
12.1 面向对象程序设计的一般方法和技巧 308
12.2 设计实例 311
12.2.1 举例:模拟网上购书的结账功能 311
12.2.2 举例:模拟ATM为用户提供服务 319
本章小结 333
习题 333
参考文献 334
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《Cinema 4D电商美工与视觉设计案例教程》樊斌 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019