面向对象程序设计:C++版 第二版
作者:董正言 主编
出版时间: 2020年版
内容简介
本书以面向对象程序设计技术的本质属性为主线,以C++语言为基础,全面地阐述了面向对象程序设计的基本原理。
目录
第1章绪论
1.1编程语言的发展
1.2C++语言简介
1.3面向对象的程序设计方法
1.4第一个C++程序
小结
习题
第2章基本数据类型和运算符
2.1基本概念
2.1.1程序实例
2.1.2C++字符集
2.1.3C++关键字
2.1.4标识符
2.1.5程序注释
2.2基本数据类型
2.2.1整数类型
2.2.2浮点类型
2.2.3字符类型
2.2.4布尔类型
2.3变量和常量
2.3.1变量
2.3.2常量
2.4简单的输入和输出
2.5C++运算符和表达式
2.5.1赋值运算符和赋值表达式
2.5.2算术运算符和算术表达式
2.5.3关系运算符和关系表达式
2.5.4逻辑运算符和逻辑表达式
2.5.5位运算符
2.5.6逗号运算符和逗号表达式
2.5.7条件运算符和条件表达式
2.5.8sizeof运算符
2.5.9其他运算符
2.6数据类型转换
2.7缩窄转换
小结
习题
第3章控制语句
3.1选择结构
3.1.1ifelse选择语句
3.1.2嵌套的ifelse语句
3.1.3ifelse if语句
3.1.4switch语句
3.2循环结构
3.2.1while循环语句
3.2.2dowhile循环语句
3.2.3for循环语句
3.2.4嵌套的循环语句
3.3其他流控制语句
3.3.1break语句和continue语句
3.3.2goto语句
小结
习题
第4章复合数据类型
4.1数组
4.1.1数组的定义和初始化
4.1.2使用数组
4.1.3使用基于范围的for循环语句访问数组元素
4.1.4字符数组和字符串
4.2指针
4.2.1定义和使用指针
4.2.2指针和数组
4.2.3数组指针和指针数组
4.2.4使用操作符new和delete进行动态存储分配
4.3引用
4.3.1C++98中的引用
4.3.2左值和右值
4.3.3左值引用和右值引用
4.4枚举和结构
4.4.1枚举
4.4.2结构
小结
习题
第5章函数
5.1定义和调用函数
5.1.1函数的定义
5.1.2函数的调用
5.1.3函数原型
5.2传递参数
5.2.1传值传递
5.2.2引用传递
5.3局部变量和全局变量
5.4函数调用的实现
5.5内联函数
5.6递归函数
5.7参数的默认值
5.8指针函数和函数指针
5.8.1指针函数
5.8.2函数指针
5.8.3用函数指针作为函数的参数
5.9函数重载
5.10函数模板
5.11lambda函数
5.11.1定义和使用lambda函数
5.11.2lambda函数的捕获列表
5.11.3lambda函数作为函数的参数
5.12具有可变长参数的函数
小结
习题
第6章类和对象(上)
6.1面向对象程序设计概述
6.2创建类
6.2.1定义类
6.2.2类的实现
6.3创建和使用对象
6.4类成员的访问控制
6.4.1类的公有成员
6.4.2类的私有成员
6.4.3类的保护成员
6.5内联的成员函数
6.6构造函数
6.6.1定义类的构造函数
6.6.2默认的构造函数
6.6.3带默认参数值的构造函数
6.7拷贝构造函数
6.7.1定义类的拷贝构造函数
6.7.2默认的拷贝构造函数与对象的浅拷贝问题
6.8析构函数
6.9移动构造函数
6.10程序实例
小结
习题
第7章类和对象(下)
7.1类的静态成员
7.1.1静态数据成员
7.1.2静态函数成员
7.2对象指针
7.3动态创建
7.3.1动态创建对象
7.3.2动态创建对象数组
7.4类作用域
7.4.1类成员具有类作用域
7.4.2具有类作用域的数据成员被局部变量屏蔽
7.5this指针
7.6类的组合
7.7常对象和类的常成员
7.7.1常对象
7.7.2常数据成员
7.7.3const成员函数
7.8类模板
7.9友元
7.9.1友元函数
7.9.2友元类
7.10使用function对象调用类的实例成员函数
7.11string类
7.11.1构造字符串
7.11.2常用的字符串操作
小结
习题
第8章类的继承
8.1基类和派生类
8.2定义派生类
8.3继承方式与访问权限
8.4构造派生类对象
8.4.1派生类对象的结构
8.4.2派生类的构造函数
8.5成员覆盖
8.6实例学习——图形类家族
8.7多重继承
8.7.1多重继承的实现
8.7.2多重继承引发的二义性问题
8.8虚基类
8.9对象类型转换
小结
习题
第9章多态
9.1什么是多态
9.2虚函数和动态绑定
9.3纯虚函数和抽象类
9.4限定符override和final
9.4.1限定符override
9.4.2限定符final
9.5编译期多态——运算符重载
9.5.1什么是运算符重载
9.5.2用类的成员函数实现运算符重载
9.5.3用类的友元函数实现运算符重载
9.6拷贝赋值运算符
9.7移动赋值运算符
9.8强制移动
9.9运行时类型识别
9.9.1dynamic_cast操作符
9.9.2typeid操作符和type_info类
小结
习题
第10章太阳城
模板库
10.1太阳城
模板库简介
10.2vector容器
10.3list容器
10.4map容器
10.5算法
10.6容器、迭代器和算法之间的关系
小结
习题
第11章程序结构、预处理和命名空间
11.1多文件结构的源程序
11.2文件间的信息共享
11.2.1头文件
11.2.2关键字extern
11.2.3使用关键字static避免同名冲突
11.2.4函数的声明
11.2.5类的声明
11.3预处理
11.3.1#include指令
11.3.2#define指令
11.3.3条件预处理指令
11.3.4使用条件预处理指令避免重复包含
11.4命名空间
小结
习题
第12章输入和输出
12.1什么是输入/输出流
12.2输入/输出流类
12.2.1预定义的流对象
12.2.2插入运算符和提取运算符
12.2.3格式化标志和设置格式化标志的函数
12.2.4I/O格式操作符
12.2.5控制输入/输出格式的函数
12.2.6常用的I/O函数
12.3磁盘文件的输入/输出
12.3.1打开文件
12.3.2数据的存储格式和文件的打开模式
12.3.3文件的输入/输出
12.3.4文件指针
小结
习题
第13章异常处理
13.1抛出异常
13.2捕获和处理异常
13.3异常的传递途径
13.4异常类
小结
习题
第14章Windows编程基础
14.1事件驱动机制和Windows SDK编程
14.2MFC
14.2.1一个简单的MFC应用程序
14.2.2MFC简介
14.2.3MFC程序结构分析
14.3消息映射机制
14.3.1Windows消息
14.3.2MFC消息映射机制
14.4Windows程序实例
小结
习题
附录A
参考文献