第一篇 基础知识篇
第1章 初识C++——"Hello World!"
1.1 C++的历史背景
1.1.1 20世纪最伟大的发明——计算机
1.1.2 C++的发展历程
1.1.3 C++发展史中的杰出人物
1.2 Visual Studio 2010集成编译环境
1.2.1 安装Visual Studio 2010
1.2.2 卸载Visual Studio 2010
1.2.3 使用Visual Studio 2010创建一个C++控制台程序
1.2.4 编写第一个C++程序"Hello World!"
1.3 如何使用本书代码
1.4 小结
第2章 与计算机交流的手段——数据的计算、输入与输出
2.1 C++语言基本要素
2.1.1 标识符
2.1.2 关键字
2.1.3 常量
2.1.4 变量
2.2 数据类型
2.2.1 数值类型
2.2.2 字符类型
2.2.3 布尔类型
2.3 数据的输入与输出
2.3.1 格式输出函数
2.3.2 格式输入函数
2.3.3 标准输出输入流
2.3.4 流操作的控制
2.4 运算符
2.4.1 算术运算符
2.4.2 关系运算符
2.4.3 逻辑运算符
2.4.4 赋值运算符
2.4.5 位运算符
2.4.6 移位运算符
2.4.7 sizeof运算符
2.4.8 条件运算符
2.4.9 逗号运算符
2.5 结合性和优先级
2.6 表达式
2.6.1 算术表达式
2.6.2 关系表达式
2.6.3 条件表达式
2.6.4 赋值表达式
2.6.5 逻辑表达式
2.6.6 逗号表达式
2.6.7 表达式中的类型转换
2.7 语句
2.8 左值与右值
2.9 上机实践
2.9.1 计算三角形周长
2.9.2 计算三角形边长
2.10 小结
2.11 习题
第3章 重要的逻辑工具——判断与循环
3.1 条件判断
3.1.1 if语句
3.1.2 if-else语句
3.1.3 嵌套的if-else语句
3.1.4 使用条件运算符进行判断
3.1.5 switch判断语句
3.2 循环语句
3.2.1 while循环语句
3.2.2 do-while循环
3.2.3 while与do-while的比较
3.2.4 for循环语句
3.3 循环控制
3.3.1 控制循环的变量
3.3.2 break语句
3.3.3 continue语句
3.3.4 goto语句
3.4 循环嵌套
3.5 上机实践
3.5.1 图书的位置
3.5.2 输出闰年
3.6 小结
3.7 习题
第4章 程序的模块——函数
4.1 函数概述
4.1.1 函数的结构
4.1.2 函数的声明和使用
4.2 函数参数
4.2.1 形参与实参
4.2.2 默认参数
4.3 函数的返回值
4.3.1 返回值
4.3.2 空函数
4.4 函数的递归调用
4.5 重载函数
4.6 生存周期与作用域
4.6.1 变量的作用域
4.6.2 变量的生存周期
4.7 名称空间
4.8 上机实践
4.8.1 等差数列的和
4.8.2 提款机的记录
4.9 小结
4.10 习题
第5章 内存访问——指针和引用
5.1 指针
5.1.1 变量与指针
5.1.2 指针运算
5.1.3 空类型指针与指向空的指针
5.1.4 指针常量与指向常量的指针
5.2 指针与函数
5.2.1 指针传递参数
5.2.2 函数指针
5.2.3 空类型指针与函数
5.2.4 指针与函数返回值
5.3 指针与安全
5.3.1 内存的分配方式
5.3.2 内存安全
5.4 引用
5.4.1 引用的概述
5.4.2 右值引用
5.5 函数与引用
5.5.1 使用引用传递参数
5.5.2 指针与引用
5.5.3 右值引用传递参数
5.6 上机实践
5.6.1 水桶的平衡
5.6.2 分步计算
5.7 小结
5.8 习题
第6章 一即是全,全即是一——数组和字符串
6.1 一维数组
6.1.1 一维数组的声明
6.1.2 一维数组的元素
6.1.3 一维数组的初始化
6.2 二维数组
6.2.1 二维数组的声明
6.2.2 二维数组元素的使用
6.2.3 二维数组的初始化
6.3 字符数组
6.3.1 声明一个字符串数组
6.3.2 字符串数组赋值方式
6.3.3 字符数组的一些说明
6.3.4 字符串和字符串结束标志
6.3.5 字符串处理函数
6.4 指针与数组
6.4.1 数组的存储
6.4.2 指针与一维数组
6.4.3 指针与二维数组
6.4.4 指针与字符数组
6.4.5 数组作为函数参数
6.4.6 数组的动态分配
6.5 字符串类型
6.5.1 使用本地字符串类型string
6.5.2 连接string字符串
6.5.3 比较string字符串
6.5.4 string字符串和数组
6.6 上机实践
6.6.1 名字排序
6.6.2 查找数字
6.7 小结
6.8 习题
第二篇 核心技术篇
第7章 面向对象——类的构造
7.1 学会面向对象的编程思想
7.1.1 面向对象与面向过程编程
7.1.2 面向对象编程
7.1.3 面向对象的特点
7.2 类与对象
7.2.1 类的声明与定义
7.2.2 头文件与源文件
7.2.3 类的实现
7.2.4 对象
7.2.5 访问类的成员
7.3 类的构造函数
7.3.1 构造函数的概念
7.3.2 构造函数的定义和使用
7.4 类的析构函数
7.5 类的静态成员
7.6 对象的指针
7.7 this指针
7.8 对象与复制
7.9 const对象
7.10 对象数组
7.11 运算符的重载
7.11.1 算术运算符的重载
7.11.2 比较运算符的重载
7.12 上机实践
7.12.1 用户与留言
7.12.2 挑选硬盘
7.13 小结
7.14 习题
第8章 并非每个人都会说汉语——类的继承和派生
8.1 继承
8.1.1 类的继承
8.1.2 类成员的可访问性
8.1.3 继承后可访问性
8.1.4 构造函数访问顺序
8.1.5 子类显示调用父类构造函数
8.1.6 子类隐藏父类的成员函数
8.1.7 嵌套类
8.2 多重继承
8.2.1 多重继承的定义
8.2.2 二义性
8.2.3 多重继承的构造顺序
8.3 多态
8.3.1 虚函数概述
8.3.2 利用虚函数实现动态绑定
8.3.3 虚继承
8.4 抽象类
8.4.1 纯虚函数
8.4.2 实现抽象类中的成员函数
8.5 友元
8.5.1 友元概述
8.5.2 友元类
8.6 上机实践
8.6.1 学生类的设计
8.6.2 等边多边形
8.7 小结
8.8 习题
第9章 量身定做——模板
9.1 函数模板
9.1.1 函数模板的定义
9.1.2 函数模板的作用
9.1.3 重载函数模板
9.2 类模板
9.2.1 类模板的定义与声明
9.2.2 简单类模板
9.2.3 默认模板参数
9.2.4 为具体类型的参数提供默认值
9.2.5 有界数组模板
9.3 模板的使用
9.3.1 定制类模板
9.3.2 定制类模板成员函数
9.3.3 模板部分定制
9.4 链表类模板
9.4.1 链表
9.4.2 链表类模板
9.4.3 类模板的静态数据成员
9.5 上机实践
9.5.1 除法函数模板
9.5.2 取得数据间最大值
9.6 小结
9.7 习题
第三篇 高级应用篇
第10章 快刀斩乱麻——代码整理
10.1 结构体
10.2 数据类型别名——typedef
10.3 枚举类型
10.4 类型推导
10.5 异常处理
10.5.1 抛出异常
10.5.2 异常捕获
10.5.3 异常匹配
10.5.4 标准异常
10.6 宏定义
10.7 上机实践
10.7.1 扑克牌的牌面
10.7.2 使用参数宏求圆面积
10.8 小结
10.9 习题
第11章 取之有道,用之有节——STL标准模板库
11.1 预备知识
11.1.1 标准模板库概述
11.1.2 顺序线性结构
11.1.3 操作
11.1.4 栈
11.1.5 队列
11.1.6 链表
11.1.7 图结构
11.2 容器
11.2.1 容器与容器适配器
11.2.2 迭代器与容器
11.2.3 vector容器
11.2.4 list容器
11.2.5 关联容器
11.3 算法
11.3.1 for_each函数
11.3.2 fill函数
11.3.3 sort函数
11.3.4 transform函数
11.4 lambda表达式
11.5 上机实践
11.5.1 迭代输出信息
11.5.2 计算平均值
11.6 小结
11.7 习题
第12章 内存与硬盘的交流——文件操作
12.1 文件流
12.1.1 C++中的流类库
12.1.2 类库的使用
12.1.3 ios类中的枚举常量
12.1.4 流的输入/输出
12.2 文件打开
12.2.1 打开方式
12.2.2 默认打开模式
12.2.3 打开文件的同时创建文件
12.3 文件的读写
12.3.1 文件流
12.3.2 写文本文件
12.3.3 读取文本文件
12.3.4 二进制文件的读写
12.3.5 实现文件的复制
12.4 文件指针的移动操作
12.4.1 文件错误与状态
12.4.2 文件的追加
12.4.3 文件结尾的判断
12.4.4 在指定位置读写文件
12.5 文件和流的关联与分离
12.6 删除文件
12.7 上机实践
12.7.1 记录类的信息
12.7.2 读取文件信息
12.8 小结
12.9 习题
第四篇 项目实战篇
第13章 综合实战——商品销售系统
13.1 商品类的设计
13.2 销售系统的设计
13.3 销售记录功能
13.4 小结
第14章 综合实战——吃豆子游戏
14.1 Windows窗口应用程序
14.1.1 建立Windows窗口应用程序
14.1.2 Windows窗体的产生
14.1.3 Windows消息循环
14.1.4 常用绘图GDI
14.2 制作PacMan
14.2.1 PacMan程序框架初步分析
14.2.2 碰撞检测的实现
14.2.3 地图类的设计
14.2.4 数据更新
14.2.5 绘图
14.2.6 客户端设计
14.3 小结
第一篇 基础知识篇
第1章 初识C++——"Hello World!"
1.1 C++的历史背景
1.1.1 20世纪最伟大的发明——计算机
1.1.2 C++的发展历程
1.1.3 C++发展史中的杰出人物
1.2 Visual Studio 2010集成编译环境
1.2.1 安装Visual Studio 2010
1.2.2 卸载Visual Studio 2010
1.2.3 使用Visual Studio 2010创建一个C++控制台程序
1.2.4 编写第一个C++程序"Hello World!"
1.3 如何使用本书代码
1.4 小结
第2章 与计算机交流的手段——数据的计算、输入与输出
2.1 C++语言基本要素
2.1.1 标识符
2.1.2 关键字
2.1.3 常量
2.1.4 变量
2.2 数据类型
2.2.1 数值类型
2.2.2 字符类型
2.2.3 布尔类型
2.3 数据的输入与输出
2.3.1 格式输出函数
2.3.2 格式输入函数
2.3.3 标准输出输入流
2.3.4 流操作的控制
2.4 运算符
2.4.1 算术运算符
2.4.2 关系运算符
2.4.3 逻辑运算符
2.4.4 赋值运算符
2.4.5 位运算符
2.4.6 移位运算符
2.4.7 sizeof运算符
2.4.8 条件运算符
2.4.9 逗号运算符
2.5 结合性和优先级
2.6 表达式
2.6.1 算术表达式
2.6.2 关系表达式
2.6.3 条件表达式
2.6.4 赋值表达式
2.6.5 逻辑表达式
2.6.6 逗号表达式
2.6.7 表达式中的类型转换
2.7 语句
2.8 左值与右值
2.9 上机实践
2.9.1 计算三角形周长
2.9.2 计算三角形边长
2.10 小结
2.11 习题
第3章 重要的逻辑工具——判断与循环
3.1 条件判断
3.1.1 if语句
3.1.2 if-else语句
3.1.3 嵌套的if-else语句
3.1.4 使用条件运算符进行判断
3.1.5 switch判断语句
3.2 循环语句
3.2.1 while循环语句
3.2.2 do-while循环
3.2.3 while与do-while的比较
3.2.4 for循环语句
3.3 循环控制
3.3.1 控制循环的变量
3.3.2 break语句
3.3.3 continue语句
3.3.4 goto语句
3.4 循环嵌套
3.5 上机实践
3.5.1 图书的位置
3.5.2 输出闰年
3.6 小结
3.7 习题
第4章 程序的模块——函数
4.1 函数概述
4.1.1 函数的结构
4.1.2 函数的声明和使用
4.2 函数参数
4.2.1 形参与实参
4.2.2 默认参数
4.3 函数的返回值
4.3.1 返回值
4.3.2 空函数
4.4 函数的递归调用
4.5 重载函数
4.6 生存周期与作用域
4.6.1 变量的作用域
4.6.2 变量的生存周期
4.7 名称空间
4.8 上机实践
4.8.1 等差数列的和
4.8.2 提款机的记录
4.9 小结
4.10 习题
第5章 内存访问——指针和引用
5.1 指针
5.1.1 变量与指针
5.1.2 指针运算
5.1.3 空类型指针与指向空的指针
5.1.4 指针常量与指向常量的指针
5.2 指针与函数
5.2.1 指针传递参数
5.2.2 函数指针
5.2.3 空类型指针与函数
5.2.4 指针与函数返回值
5.3 指针与安全
5.3.1 内存的分配方式
5.3.2 内存安全
5.4 引用
5.4.1 引用的概述
5.4.2 右值引用
5.5 函数与引用
5.5.1 使用引用传递参数
5.5.2 指针与引用
5.5.3 右值引用传递参数
5.6 上机实践
5.6.1 水桶的平衡
5.6.2 分步计算
5.7 小结
5.8 习题
第6章 一即是全,全即是一——数组和字符串
6.1 一维数组
6.1.1 一维数组的声明
6.1.2 一维数组的元素
6.1.3 一维数组的初始化
6.2 二维数组
6.2.1 二维数组的声明
6.2.2 二维数组元素的使用
6.2.3 二维数组的初始化
6.3 字符数组
6.3.1 声明一个字符串数组
6.3.2 字符串数组赋值方式
6.3.3 字符数组的一些说明
6.3.4 字符串和字符串结束标志
6.3.5 字符串处理函数
6.4 指针与数组
6.4.1 数组的存储
6.4.2 指针与一维数组
6.4.3 指针与二维数组
6.4.4 指针与字符数组
6.4.5 数组作为函数参数
6.4.6 数组的动态分配
6.5 字符串类型
6.5.1 使用本地字符串类型string
6.5.2 连接string字符串
6.5.3 比较string字符串
6.5.4 string字符串和数组
6.6 上机实践
6.6.1 名字排序
6.6.2 查找数字
6.7 小结
6.8 习题
第二篇 核心技术篇
第7章 面向对象——类的构造
7.1 学会面向对象的编程思想
7.1.1 面向对象与面向过程编程
7.1.2 面向对象编程
7.1.3 面向对象的特点
7.2 类与对象
7.2.1 类的声明与定义
7.2.2 头文件与源文件
7.2.3 类的实现
7.2.4 对象
7.2.5 访问类的成员
7.3 类的构造函数
7.3.1 构造函数的概念
7.3.2 构造函数的定义和使用
7.4 类的析构函数
7.5 类的静态成员
7.6 对象的指针
7.7 this指针
7.8 对象与复制
7.9 const对象
7.10 对象数组
7.11 运算符的重载
7.11.1 算术运算符的重载
7.11.2 比较运算符的重载
7.12 上机实践
7.12.1 用户与留言
7.12.2 挑选硬盘
7.13 小结
7.14 习题
第8章 并非每个人都会说汉语——类的继承和派生
8.1 继承
8.1.1 类的继承
8.1.2 类成员的可访问性
8.1.3 继承后可访问性
8.1.4 构造函数访问顺序
8.1.5 子类显示调用父类构造函数
8.1.6 子类隐藏父类的成员函数
8.1.7 嵌套类
8.2 多重继承
8.2.1 多重继承的定义
8.2.2 二义性
8.2.3 多重继承的构造顺序
8.3 多态
8.3.1 虚函数概述
8.3.2 利用虚函数实现动态绑定
8.3.3 虚继承
8.4 抽象类
8.4.1 纯虚函数
8.4.2 实现抽象类中的成员函数
8.5 友元
8.5.1 友元概述
8.5.2 友元类
8.6 上机实践
8.6.1 学生类的设计
8.6.2 等边多边形
8.7 小结
8.8 习题
第9章 量身定做——模板
9.1 函数模板
9.1.1 函数模板的定义
9.1.2 函数模板的作用
9.1.3 重载函数模板
9.2 类模板
9.2.1 类模板的定义与声明
9.2.2 简单类模板
9.2.3 默认模板参数
9.2.4 为具体类型的参数提供默认值
9.2.5 有界数组模板
9.3 模板的使用
9.3.1 定制类模板
9.3.2 定制类模板成员函数
9.3.3 模板部分定制
9.4 链表类模板
9.4.1 链表
9.4.2 链表类模板
9.4.3 类模板的静态数据成员
9.5 上机实践
9.5.1 除法函数模板
9.5.2 取得数据间最大值
9.6 小结
9.7 习题
第三篇 高级应用篇
第10章 快刀斩乱麻——代码整理
10.1 结构体
10.2 数据类型别名——typedef
10.3 枚举类型
10.4 类型推导
10.5 异常处理
10.5.1 抛出异常
10.5.2 异常捕获
10.5.3 异常匹配
10.5.4 标准异常
10.6 宏定义
10.7 上机实践
10.7.1 扑克牌的牌面
10.7.2 使用参数宏求圆面积
10.8 小结
10.9 习题
第11章 取之有道,用之有节——STL标准模板库
11.1 预备知识
11.1.1 标准模板库概述
11.1.2 顺序线性结构
11.1.3 操作
11.1.4 栈
11.1.5 队列
11.1.6 链表
11.1.7 图结构
11.2 容器
11.2.1 容器与容器适配器
11.2.2 迭代器与容器
11.2.3 vector容器
11.2.4 list容器
11.2.5 关联容器
11.3 算法
11.3.1 for_each函数
11.3.2 fill函数
11.3.3 sort函数
11.3.4 transform函数
11.4 lambda表达式
11.5 上机实践
11.5.1 迭代输出信息
11.5.2 计算平均值
11.6 小结
11.7 习题
第12章 内存与硬盘的交流——文件操作
12.1 文件流
12.1.1 C++中的流类库
12.1.2 类库的使用
12.1.3 ios类中的枚举常量
12.1.4 流的输入/输出
12.2 文件打开
12.2.1 打开方式
12.2.2 默认打开模式
12.2.3 打开文件的同时创建文件
12.3 文件的读写
12.3.1 文件流
12.3.2 写文本文件
12.3.3 读取文本文件
12.3.4 二进制文件的读写
12.3.5 实现文件的复制
12.4 文件指针的移动操作
12.4.1 文件错误与状态
12.4.2 文件的追加
12.4.3 文件结尾的判断
12.4.4 在指定位置读写文件
12.5 文件和流的关联与分离
12.6 删除文件
12.7 上机实践
12.7.1 记录类的信息
12.7.2 读取文件信息
12.8 小结
12.9 习题
第四篇 项目实战篇
第13章 综合实战——商品销售系统
13.1 商品类的设计
13.2 销售系统的设计
13.3 销售记录功能
13.4 小结
第14章 综合实战——吃豆子游戏
14.1 Windows窗口应用程序
14.1.1 建立Windows窗口应用程序
14.1.2 Windows窗体的产生
14.1.3 Windows消息循环
14.1.4 常用绘图GDI
14.2 制作PacMan
14.2.1 PacMan程序框架初步分析
14.2.2 碰撞检测的实现
14.2.3 地图类的设计
14.2.4 数据更新
14.2.5 绘图
14.2.6 客户端设计
14.3 小结
2.3.1 格式输出函数
2.3.2 格式输入函数
2.3.3 标准输出输入流
2.3.4 流操作的控制
2.4 运算符
2.4.1 算术运算符
2.4.2 关系运算符
2.4.3 逻辑运算符
2.4.4 赋值运算符
2.4.5 位运算符
2.4.6 移位运算符
2.4.7 sizeof运算符
2.4.8 条件运算符
2.4.9 逗号运算符
2.5 结合性和优先级
2.6 表达式
2.6.1 算术表达式
2.6.2 关系表达式
2.6.3 条件表达式
2.6.4 赋值表达式
2.6.5 逻辑表达式
2.6.6 逗号表达式
2.6.7 表达式中的类型转换
2.7 语句
2.8 左值与右值
2.9 上机实践
2.9.1 计算三角形周长
2.9.2 计算三角形边长
2.10 小结
2.11 习题
第3章 重要的逻辑工具——判断与循环
3.1 条件判断
3.1.1 if语句
3.1.2 if-else语句
3.1.3 嵌套的if-else语句
3.1.4 使用条件运算符进行判断
3.1.5 switch判断语句
3.2 循环语句
3.2.1 while循环语句
3.2.2 do-while循环
3.2.3 while与do-while的比较
3.2.4 for循环语句
3.3 循环控制
3.3.1 控制循环的变量
3.3.2 break语句
3.3.3 continue语句
3.3.4 goto语句
3.4 循环嵌套
3.5 上机实践
3.5.1 图书的位置
3.5.2 输出闰年
3.6 小结
3.7 习题
第4章 程序的模块——函数
4.1 函数概述
4.1.1 函数的结构
4.1.2 函数的声明和使用
4.2 函数参数
4.2.1 形参与实参
4.2.2 默认参数
4.3 函数的返回值
4.3.1 返回值
4.3.2 空函数
4.4 函数的递归调用
4.5 重载函数
4.6 生存周期与作用域
4.6.1 变量的作用域
4.6.2 变量的生存周期
4.7 名称空间
4.8 上机实践
4.8.1 等差数列的和
4.8.2 提款机的记录
4.9 小结
4.10 习题
第5章 内存访问——指针和引用
5.1 指针
5.1.1 变量与指针
5.1.2 指针运算
5.1.3 空类型指针与指向空的指针
5.1.4 指针常量与指向常量的指针
5.2 指针与函数
5.2.1 指针传递参数
5.2.2 函数指针
5.2.3 空类型指针与函数
5.2.4 指针与函数返回值
5.3 指针与安全
5.3.1 内存的分配方式
5.3.2 内存安全
5.4 引用
5.4.1 引用的概述
5.4.2 右值引用
5.5 函数与引用
5.5.1 使用引用传递参数
5.5.2 指针与引用
5.5.3 右值引用传递参数
5.6 上机实践
5.6.1 水桶的平衡
5.6.2 分步计算
5.7 小结
5.8 习题
第6章 一即是全,全即是一——数组和字符串
6.1 一维数组
6.1.1 一维数组的声明
6.1.2 一维数组的元素
6.1.3 一维数组的初始化
6.2 二维数组
6.2.1 二维数组的声明
6.2.2 二维数组元素的使用
6.2.3 二维数组的初始化
6.3 字符数组
6.3.1 声明一个字符串数组
6.3.2 字符串数组赋值方式
6.3.3 字符数组的一些说明
6.3.4 字符串和字符串结束标志
6.3.5 字符串处理函数
6.4 指针与数组
6.4.1 数组的存储
6.4.2 指针与一维数组
6.4.3 指针与二维数组
6.4.4 指针与字符数组
6.4.5 数组作为函数参数
6.4.6 数组的动态分配
6.5 字符串类型
6.5.1 使用本地字符串类型string
6.5.2 连接string字符串
6.5.3 比较string字符串
6.5.4 string字符串和数组
6.6 上机实践
6.6.1 名字排序
6.6.2 查找数字
6.7 小结
6.8 习题
第二篇 核心技术篇
第7章 面向对象——类的构造
7.1 学会面向对象的编程思想
7.1.1 面向对象与面向过程编程
7.1.2 面向对象编程
7.1.3 面向对象的特点
7.2 类与对象
7.2.1 类的声明与定义
7.2.2 头文件与源文件
7.2.3 类的实现
7.2.4 对象
7.2.5 访问类的成员
7.3 类的构造函数
7.3.1 构造函数的概念
7.3.2 构造函数的定义和使用
7.4 类的析构函数
7.5 类的静态成员
7.6 对象的指针
7.7 this指针
7.8 对象与复制
7.9 const对象
7.10 对象数组
7.11 运算符的重载
7.11.1 算术运算符的重载
7.11.2 比较运算符的重载
7.12 上机实践
7.12.1 用户与留言
7.12.2 挑选硬盘
7.13 小结
7.14 习题
第8章 并非每个人都会说汉语——类的继承和派生
8.1 继承
8.1.1 类的继承
8.1.2 类成员的可访问性
8.1.3 继承后可访问性
8.1.4 构造函数访问顺序
8.1.5 子类显示调用父类构造函数
8.1.6 子类隐藏父类的成员函数
8.1.7 嵌套类
8.2 多重继承
8.2.1 多重继承的定义
8.2.2 二义性
8.2.3 多重继承的构造顺序
8.3 多态
8.3.1 虚函数概述
8.3.2 利用虚函数实现动态绑定
8.3.3 虚继承
8.4 抽象类
8.4.1 纯虚函数
8.4.2 实现抽象类中的成员函数
8.5 友元
8.5.1 友元概述
8.5.2 友元类
8.6 上机实践
8.6.1 学生类的设计
8.6.2 等边多边形
8.7 小结
8.8 习题
第9章 量身定做——模板
9.1 函数模板
9.1.1 函数模板的定义
9.1.2 函数模板的作用
9.1.3 重载函数模板
9.2 类模板
9.2.1 类模板的定义与声明
9.2.2 简单类模板
9.2.3 默认模板参数
9.2.4 为具体类型的参数提供默认值
9.2.5 有界数组模板
9.3 模板的使用
9.3.1 定制类模板
9.3.2 定制类模板成员函数
9.3.3 模板部分定制
9.4 链表类模板
9.4.1 链表
9.4.2 链表类模板
9.4.3 类模板的静态数据成员
9.5 上机实践
9.5.1 除法函数模板
9.5.2 取得数据间最大值
9.6 小结
9.7 习题
第三篇 高级应用篇
第10章 快刀斩乱麻——代码整理
10.1 结构体
10.2 数据类型别名——typedef
10.3 枚举类型
10.4 类型推导
10.5 异常处理
10.5.1 抛出异常
10.5.2 异常捕获
10.5.3 异常匹配
10.5.4 标准异常
10.6 宏定义
10.7 上机实践
10.7.1 扑克牌的牌面
10.7.2 使用参数宏求圆面积
10.8 小结
10.9 习题
第11章 取之有道,用之有节——STL标准模板库
11.1 预备知识
11.1.1 标准模板库概述
11.1.2 顺序线性结构
11.1.3 操作
11.1.4 栈
11.1.5 队列
11.1.6 链表
11.1.7 图结构
11.2 容器
11.2.1 容器与容器适配器
11.2.2 迭代器与容器
11.2.3 vector容器
11.2.4 list容器
11.2.5 关联容器
11.3 算法
11.3.1 for_each函数
11.3.2 fill函数
11.3.3 sort函数
11.3.4 transform函数
11.4 lambda表达式
11.5 上机实践
11.5.1 迭代输出信息
11.5.2 计算平均值
11.6 小结
11.7 习题
第12章 内存与硬盘的交流——文件操作
12.1 文件流
12.1.1 C++中的流类库
12.1.2 类库的使用
12.1.3 ios类中的枚举常量
12.1.4 流的输入/输出
12.2 文件打开
12.2.1 打开方式
12.2.2 默认打开模式
12.2.3 打开文件的同时创建文件
12.3 文件的读写
12.3.1 文件流
12.3.2 写文本文件
12.3.3 读取文本文件
12.3.4 二进制文件的读写
12.3.5 实现文件的复制
12.4 文件指针的移动操作
12.4.1 文件错误与状态
12.4.2 文件的追加
12.4.3 文件结尾的判断
12.4.4 在指定位置读写文件
12.5 文件和流的关联与分离
12.6 删除文件
12.7 上机实践
12.7.1 记录类的信息
12.7.2 读取文件信息
12.8 小结
12.9 习题
第四篇 项目实战篇
第13章 综合实战——商品销售系统
13.1 商品类的设计
13.2 销售系统的设计
13.3 销售记录功能
13.4 小结
第14章 综合实战——吃豆子游戏
14.1 Windows窗口应用程序
14.1.1 建立Windows窗口应用程序
14.1.2 Windows窗体的产生
14.1.3 Windows消息循环
14.1.4 常用绘图GDI
14.2 制作PacMan
14.2.1 PacMan程序框架初步分析
14.2.2 碰撞检测的实现
14.2.3 地图类的设计
14.2.4 数据更新
14.2.5 绘图
14.2.6 客户端设计
14.3 小结