格式:PDF
《C++编程金典(第3版)》
作为全球使用最广泛的C++经典程序设计教材,本书详细介绍了过程式与面向对象程序设计的基本知识与方法,其中包括C++的强大功能、最新特性和新增的ANSI/ISO C++标准库。 本书通过面向一个大型对象(电梯模拟系统)的程序设计,以数百个“活代码”示例程序,重点突出了利用UML进行面向对象的设计。分布在各章的“对象思想”、“案例分析”、“常见编程错误”、“良好编程习惯”、“自测题”和“练习题”等特色部分非常具有实际指导意义,不仅可让接触C++的新手真实体验编程乐趣,还可让有经验的程序员得到启发。 本书的读者对象为计算机软件、系统和网络编程人员,也可作为大学计算机相关专业本科生和研究生的编程教材和参考书。
《C++编程金典(第3版)》图书目录:
前言
第1章 计算机和C++编程概述
1.1 简介
1.2 计算机是什么
1.3 计算机的构成
1.4 操作系统的进化
1.5 个人计算、分布式计算和客户机/服务器计算
1.6 机器语言、汇编语言和高级语言
1.7 C和C++发展简史
1.8 C++标准库
1.9 Java和《Java程序设计》
1.10 其他高级语言
1.11 结构化编程
1.12 关键的软件趋势:对象技术
1.13 典型C++环境的基础
1.14 硬件发展趋势
1.15 因特网发展简史
1.16 万维网发展简史
1.17 C++和本书的常规注意事项
1.18 C++编程简述
1.19 一个简单的程序:打印一行文字
1.20 另一个简单的程序:两个整数相加
1.21 内存的概念
1.22 算术运算
1.23 判断:相等性和关系操作符
1.24 对象思想:对象技术及UML简介
1.25 小结
第2章 控制结构
2.1 简介
2.2 算法
2.3 伪代码
2.4 控制结构
2.5 if选择结构
2.6 if/else选择结构
2.7 while重复结构
2.8 算法设计:案例分析1(计数器控制重复)
2.9 算法设计:案例分析2(标记控制重复)
2.10 算法设计:案例分析3(嵌套控制结构)
2.11 赋值操作符
2.12 自增和自减操作符
2.13 计数器控制重复的本质
2.14 for重复结构
2.15 for结构用法示例
2.16 switch多选结构
2.17 do/while重复结构
2.18 break和continue语句
2.19 逻辑操作符
2.20 混淆相等性操作符(==)和赋值操作符(=)
2.21 结构化编程小结
2.22 [可选案例分折]对象思想:标识问题所牵涉的类
2.23 小结
第3章 函数
3.1 简介
3.2 C++中的程序组件
3.3 数学库函数
3.4 函数
3.5 函数定义
3.6 函数原型
3.7 头文件
3.8 生成随机数
3.9 示例:博彩游戏和enum简介
3.10 存储类
3.11 作用域规则
3.12 递归
3.13 递归应用示例:费波拉奇数列
3.14 递归和迭代的对比
3.15 使用空参数列表的函数
3.16 内联函数
3.17 引用和引用参数
3.18 默认实参
3.19 一元作用域分辨符
3.20 函数重载
3.21 函数模板
3.22 [可选案例分析]对象思想:标识类的属性
3.23 小结
第4章 数组
4.1 简介
4.2 数组
4.3 声明数组
4.4 数组用法示例
4.5 将数组传给函数
4.6 数组排序
4.7 案例分析:利用数组计算均数、中位数和众数
4.8 搜索数组:线性搜索和二元搜索
4.9 多下标数组
4.10 [可选案例分析]对象思想:标识类的行为
4.11 小结
第5章 指针和字符串
5.1 简介
5.2 指针变量声明和初始比
5.3 指针操作符
5.4 按引用调用函数
5.5 使用带指针的const限定符
5.6 使用引用调用的冒泡排序
5.7 指针表达式和指针算法
5.3 指针和数组的关系
5.9 指针数组
5.10 案例分析:洗牌和发牌模拟程序
5.11 函数指针
5.12 字符和字符串处理概述
5.13 [可选案例分析]对象思想:对象间的合作
5.14 小结
第6章 类和数据抽象(一)
6.1 简介
6.2 结构定义
6.3 访问结构成员
6.4 用struct实现用户自定义类型Time
6.5 用class实现Time抽象数据类型
6,6 类作用域和访问类成员
6.7 接口同实现方法的分离
6.3 控制对成员的访问
6.9 访问函数和工具函数
6.10 初始化类对象:构造函数
6.11 在构造函数中使用默认参数
6.12 使用析构函数
6.13 何时调用构造函数和析构函数
6.14 使用数据成员和成员函数
6.15 微妙的陷阱:返回对Private数据成员的引用
6.16 通过默认的按位成员复制赋值
6.17 软件重用性
6.18 [可选案例分析]对象思想:编写电梯模拟程序所需的类
6.19 小结
第7章 类和数据抽象(二)
7.1 简介
7.2 常量对象和常量成员函数
7.3 合成:对象作为类成员
7.4 友元函数和友元类
7.5 使用this指针
7.6 用new和delete实现动态内存分配
7.7 静态类成员
7.8 数据抽象和信息隐藏
7.9 容器类和迭代器
7.10 代理类
7.11 [可选案例分析]:对象思想:为电梯模拟程序中的类编写程序
7.12 小结
第8章 操作符重载
8.1 简介
8.2 操作符重载的基础知识
8.3 操作符重载的限制条件
8.4 类成员操作符函数与友元函数操作符函数的对比
8.5 重载流插入与流读取操作符
8.6 重载一元操作符
8.7 重载二元操作符
8.8 案例分析:Array类
8.9 类型转换
8.10 案例分析:String类
8.11 重载++和--
8.12 案例分析:Date类
8.13 小结
第9章 继承
9.1 简介
9.2 继承:基类与派生类
9.3 protected成员
9.4 基类指针向派生类指针的强制类型转换
9.5 使用成员函数
9.6 在派生类中改写基类成员
9.7 public、Protected和Private继承
9.8 直接基类和间接基类
9.9 在派生类中使用构造和析构函数
9.10 派生类向基类的隐式转换
9.11 继承在软件工程中的应用
9.12 合成与继承
9.13 "使用"关系和"知道"关系
9.14 案例分析:Point,Circle和Cylinder类
9.15 多重继承
9.16 [可选案例分析]对象思想:在电梯模拟程序中集成继承
9.17 小结
第10章 虚拟函数和多恋性
10.1 简介
10.2 类型域和switch语句
10.3 虚拟函数
10.4 抽象基类和具体类
10.5 多态性
10.6 案例分析:使用多态性的工资发放系统
10.7 新类和动态绑定
10.8 虚拟析构函数
10.9 案例分析:继承接口和实现
10.10 多态性、虚拟函数和动态绑定的本质
10.11 小结
第11章 C++输入/输出流
11.1 简介
11.2 流
11.3 输出流
11.4 输入流
11.5 成员函数read,gcount和write的无格式输入/输出
11.6 流操纵元
11.7 流格式状态
11.8 流错误状态
11.9 把输出流连接到输入流
11.10 小结
第12章 模板
12.1 简介
12.2 函数模饭
12.3 重载模板函数
12.4 类模板
12.5 类模板与无类型参数
12.6 模板与继承
12.7 模板与友元
12.8 模板与静态数据成员
12.9 小结
第13章 异常处理
13.1 简介
13.2 何时使用异常处理
13.3 其他错误处理方法
13.4 C++异常处理基础:try.throw和catch
13.5 简单的异常处理例子:除数为()
13.6 抛出异常
13.7 捕捉异常
13.8 重抛出异常
13.9 异常的规约
13.10 处理意外异常
13.11 堆栈解退
13.12 构造函数、析构函数与异常处理
13.13 异常与继承
13.14 处理new失败
13.15 auto_ptr类与动态内存分配
13.16 标准库异常的层次结构
13.17 小结
第14章 文件处理
14.1 简介
14.2 数据的层次结构
14.3 文件和流
14.4 创建顺序访问文件
14.5 读取顺序访问文件中的数据
14.6 更新顺序访问文件
14.7 随机访问文件
14.8 建立随机访问文件
14.9 向随机访问文件随机写入数据
14.10 从随机访问文件中顺序读取数据
14.11 案例分析:事务处理程序
14.12 对象的输入/输出
14.13 小结
第15章 数据结构
15.1 简介
15.2 自引用类
15.3 动态内存分配
15.4 链表
15.5 堆栈
15.6 队列
15.7 树
15.8 小结
第16章 位、字符、字符串与结构
16.1 简介
16.2 结构的定义
16.3 结构的初始化
16.4 在函数中使用结构
16.5 关键字typedef
16.6 示例:高性能洗牌与发牌模拟程序
16.7 位操作符
16.8 位段
16.9 字符处理函数库
16.10 字符串转换函数
16.11 字符串处理函数库的查找函数
16.12 字符串处理函数库中的内存处理函数
16.13 字符串处理函数库中的其他函数
16.14 小结
第17章 预处理程序
17.1 简介
17.2 预处理程序指令#include
17.3 预处理程序指令#define:符号常量
17.4 预处理程序指令#define:宏指令
17.5 条件编译
17.6 预处理程序指令#error与#Pragma
17.7 操作符#与##
17.8 行号
17.9 预定义符号常量
17.10 宏指令(assert)
17.11 小结
第18章 C遗留代码
18.1 简介
18.2 UNIX与DOS系统中的重定向输入/输出
18.3 变长参数列表
18.4 使用命令行参数
18.5 编译多个源文件程序的相关说明
18.6 用函数exit与atexit终止程序运行
18.7 类型限定符volatile
18.8 整数和浮点数常量的后缀
18.9 信号处理
18.10 用calloc与realloc动态内存分配
18.11 无条件转向语句:goto
18.12 联合体
18.13 接合规约
18.14 小结
第19章 string类和字符串流处理
19.1 简介
19.2 字符串的赋值与拼接
19.3 比较字符串
19.4 子串
19.5 交换字符串
19.6 字符串的特性
19.7 查找字符串中的字符
19.8 替换字符串中的字符
19.9 在字符串中插入字符
19.10 转换为C风格的char*字符串
19.11 迭代器
19.12 字符串流处理
19.13 小结
第20章 标准模板库(STL)
20.1 标准模板库STL简介
20.2 序列容器
20.3 关联容器
20.4 容器适配器
20.5 算法
20.6 bitset类
20.7 函数对象
20.8 小结
第21章 标准C++语言的增补
21.1 简介
21.2 布尔数据类型
21.3 static_cast操作符
21.4 const_cast操作符
21.5 reinterpret_cast操作符
21.6 名称空间
21.7 运行时类型信息(RTTI)
21.8 操作符关键字
21.9 显式构造函数
21.10 mutable类成员
21.11 类成员指针(.*和->*)
21.12 多重继承和虚拟基类
21.13 结束语
21.14 小结
附录A 操作符的优先级和结台性
附录B ASCII字符集
附录C 数值系统
C.1 简介
C.2 将二进制数简化为八进制和十六进制数
C.3 将八进制和十六进制数转换为二进制数
C.4 将二进制、八进制或十六进制转换为十进制
C.5 将十进制转换为二进制、八进制或十六进制
C.6 负的二进制数:2的补值记号法
C.7 小结
附录D 因特网和万维网上的C++资源
D.1 资源
D.2 教程
D.3 FAQ
D.4 Visual C++
D.5 comp.lang.C++
D.6 编译工具
D.7 开发工具
D.8 标准模板库