第l章 类型、变量和标准I/O:LostFortune
1.1 C++简介
1.1.1 将C++用于游戏
1.1.2 创建可执行文件
1.1.3 处理错误
1.1.4 了解ISO标准
1.2 编写第一个C++程序
1.2.1 GameOver程序简介
1.2.2 为代码添加注释
1.2.3 使用空白
1.2.4 包括其他文件
1.2.5 定义main()函数
1.2.6 通过标准输出显示文本
1.2.7 结束语句
1.2.8 从main()返回一个值
1.3 使用std名称空间
1.3.1 GameOver2.0程序简介
1.3.2 使用using指令
1.3.3 GameOver3.0程序简介
1.3.4 使用using声明
1.3.5 何时使用using..
1.4 使用算术操作符
1.4.1 ExpensiveCalculator程序简介
1.4.2 加法、减法和乘法
1.4.3 整数除法和浮点数除法
1.4.4 使用模操作符
1.4.5 操作的顺序
1.5 声明和初始化变量
1.5.1 GameStats程序简介
1.5.2 基本类型
1.5.3 类型修饰符
1.5.4 声明变量
1.5.5 命名变量
1.5.6 向变量赋值
1.5.7 初始化变量
1.5.8 显示变量值
1.5.9 获得用户输入
1.5.10 为类型定义新名称
1.5.11 使用哪一种类型
1.6 使用变量执行算术运算
1.6.1 GameStats2.0程序简介
1.6.2 改变变量的值
1.6.3 使用组合赋值操作符
1.6.4 使用加In.减1操作符
1.6.5 处理整型数环绕
1.7 使用常量
1.7.1 GameStats3.0程序简介
1.7.2 使用常量
1.7.3 使用枚举
1.8 LostFortune简介
1.8.1准备程序
1.8.2从玩家那里获取信息
1.8.3讲故事
1.9小结
1.10 问题与答案
1.11 讨论题
1.12 练习题
第2章 事实、分支和游戏循环:GuessMyNumbe
2.1 理解事实
2.2 使用if语句
2.2.1 ScoreRater程序简介
2.2.2 测试true和false
2.2.3 将值解释为true或false
2.2.4 使用关系操作符
2.2.5 嵌套if语句
2.3 使用else子句
2.3.1 ScoreRater2.0程序简介
2.3.2 创建两个分支路径
2.3.3 使else子句与正确的if语句配对
2.4 使用switch语句
2.4.1 MenuChooser程序简介
2.4.2 创建多个分支路径
2.5 使用while循环
2.5.1 PlayAgain程序简介
2.5.2 使用while循环实现循环
2.6 使用do循环
2.6.1 PlayAgain2.0程序简介
2.6.2 使用do循环实现循环
2.7 使用break和continue语句
2.7.1 FinickyCounter程序简介
2.7.2 创建while(true)循环
2.7.3 使用break语句退出循环
2.7.4 使用continue语句跳回循环顶部
2.7.5 何时使用break和continue
2.8 使用逻辑操作符
2.8.1 DesignersNetwork程序简介
2.8.2 使用逻辑与操作符
2.8.3 使用逻辑或操作符
2.8.4 使用逻辑非操作符
2.8.5 操作符的顺序
2.9 生成随机数
2.9.1 DieRoller程序简介
2.9.2 调用rand()函数
2.9.3 生成随机数生成器种子
2.9.4 计算某个范围内的数字
2.10 游戏循环
2.11 GuessMyNumber简介
2.11.1 应用游戏循环
2.11.2 开始游戏
2.11.3 创建猜测循环
2.11.4 结束游戏
2.12 小结
2.13 问题与答案
2.14 讨论题
2.15 练习题
第3章 for循环、字符串和数组:WordJumble
3.1 使用for循环
3.1.1 Counter程序简介
3.1.2 使用for循环计数
3.1.3 在for循环中使用空语句
3.1.4 嵌套for循环
3.2 对象
3.3 使用string对象
3.3.1 StringTester程序简介
3.3.2 创建string对象
3.3.3 串联string对象
3.3.4 使用size()成员函数
3.3.5 索弓Istring对象
3.3.6 遍历string对象
3.3.7 使用find()成员函数
3.3.8 使用erase()成员函数
3.3.9 使用empty()成员函数
3.4 使用数组
3.4.1 Hero'sInventory程序简介
3.4.2 创建数组
3.4.3 索引数组
3.4.4 访问数组元素的成员函数
3.4.5 注意数组边界
3.5 C风格的字符串
3.6 使用多维数组
3.6.1Tic-Tac-ToeBoard程序简介
3.6.2创建多维数组
3.6.3索引多维数组
3.7 WordJumble简介
3.7.1开始程序
3.7.2挑选要打乱的单词
3.7.3打乱单词
3.7.4欢迎玩家
3.7.5进入游戏循环
3.7.6说再见
3.8 小结
3.9 问题与答案
3.10 讨论题
3.11 练习题
第4章 标准模板库:Hangman
4.1 标准模板库简介
4.2 使用矢量
4.2.1 Hero'sInventory2.0程序简介
4.2.2 准备使用矢量
4.2.3 声明矢量
4.2.4 使用pushback()成员函数
4.2.5 使用size()成员函数
4.2.6 索引矢量
4.2.7 调用元素的成员函数
4.2.8 使用pop_back()成员函数
4.2.9 使用clear(、)成员函数
4.2.10 使用empty()成员函数
4.3 使用迭代器
4.3.1 Hero'sInventory3.0程序简介
4.3.2 声明迭代器
4.3.3 遍历矢量
4.3.5 访问矢量元素的成员函数
4.3.6 使用insert()矢量成员函数
4.3.7 使用erase()矢量成员函数
4.4 使用算法
4.4.1 HighScores程序简介
4.4,2 准备使用算法
4.4.3 使用randomshuffle()算法
4.4.4 使用sort()算法
4.4.5 使用merge()算法
4.5 了解矢量性能
4.5.1 了解矢量的扩大
4.5.2 了解元素插入和删除
4.6 了解其他STL容器
4.7 规划程序
4.7.1 使用伪代码
4.7.2 使用逐步求精方法
4.8 Hangman简介
4.8.1 设计游戏
4.8.2 开始程序
4.8.3 初始化变量和常量
4.8.4 进入主循环
4.8.5 获得玩家的猜测
4.8,6 结束游戏
4.9 小结
4.10 问题与答案
4.11 讨论题
4.12 练习题
第5章 函数:MadLib
5.1 创建函数
5.1.1 Instructions程序简介
5.1.2 声明函数
5.1.3 定义函数
5.1.4 调用函数
5.1.5 抽象
5.2 使用参数和返回值
5.2.1 Yes or No程序简介
5.2.2 返回一个值
5.2.3 使用参数接受值
5.2.4 封装
5.3 软件重用
5.4 了解范围
5.4.1 Scoping程序简介
5.4.2 处理独立的范围
5.4.3 使用嵌套的范围
5.5 使用全局变量
5.5.1 GlobalReach程序简介
5.5.2 声明全局变量
5.5.3 访问全局变量
5.5.4 隐藏全局变量
5.5.5 改变全局变量
5.5.6 尽可能少使用全局变量
5.6 使用全局常量
5.7 使用默认参数
5.7.1 GiveMeaNumber程序简介
5.7.2 指定默认参数
5.7.3 将默认参数赋给参数
5.7.4 覆盖默认参数
5.8 重载函数
5.8.1 Triple程序简介
5.8.2 创建重载的函数
5.8.3 调用重载的函数
5.9 内联函数
5.9.1 TakingDamage程序简介
5.9.2 指定函数将要内联
5.9.3 调用内联的函数
5.10 MadLib游戏简介
5.10.1 开始程序
5.10.2 main()函数
5.10.3 as kText()函数
5.10.4 askNumberfl函数
5.10.5 tellStoryf)函数
5.11 小结
5.12 问题与答案
5.13 讨论题
5.14 练习题
第6章 引用:Tic-Tac-Toe
6.1 使用引用
6.1.1 Referencing程序简介
6.1.2 创建引用
6.1.3 访问弓f用的值
6.1.4 更改弓l用的值
6.2 传递引用以更改参数
6.2.1 Swap程序简介
6.2.2 按值传递
6.2.3 按引用传递
6.3 传递引用以提高效率
6.3.1 InventoryDisplayer程序简介
6.3.2 了解引用传递的缺点
6.3.3 将参数声明为常量引用
6.3.4 传递常量弓1用
6.4 决定如何传递参数
6.5 返回引用
6.5.1 InventoryReference程序简介
6.5.2 返回一个引用
6.5.3 显示返回的弓『用的值
6.5.4 将返回的引用赋给另一个弓i用
6.5.5 将返回的引用赋给变量
6.5.6 通过返回的引用更改对象
6.6 Tic-Tac-Toe游戏简介
6.6.1 规划游戏
6.6.2 开始程序
6.6.3 main()函数
6.6.4 Instruction()函数
6.6.5 askYesNofl函数
6.6.6 askNumber(、1函数
6.6.7 humanPiece0函誉炙
6.6.8 opponent()函数
6.6.9 displayBoard()函数
6.6.10 winner(、)函数
6.6.1 isLegal(1函数
6.6.12 humanMove()函数
6.6.13 computerMove()函数
6.6.14 announceWinner()函数
6.7 小结
6.8 问题与答案
6.9 讨论题
6.10 练习题
第7章 指针:Tic-Tac-Toe2.0
7.1 指针基础知识
7.1.1 Pointing程序简介
7.1.2 声明指针
7.1.3 初始化指针
7.1.4 将地址赋给指针
7.1.5 解除指针的引用
7.1.6 重新为指针赋值
7.1.7 使用对象指针
7.2 指针和常量
7.2.1 使用常量指针
7.2.2 使用指向常量的指针
7.2.3 使用指向常量的常量指针
7.2.4 总结常量和指针
7.3 传递指针
7.3.1 SwapPointerVersion程序简介
7.3.2 按值传递
7.3.3 传递常量指针
7.4 返回指针
7.4.1 InventoryPointer程序简介
7.4.2 返回指针
7.4.3 使用返回的指针显示值
7.4.4 将返回的指针赋给另一个指针
7.4.5 将返回的指针指向的值赋给变量
7.4.6通过返回的指针改变对象
7.5 理解指针与数组之间的关系
7.5.1 ArrayPasser程序简介
7.5.2 使用数组名称作为常量指针
7.5.3 传递和返回数组
7.6 Tic-Tac-Toe2.0游戏简介
7.7 小结
7.8 问题与答案
7.9 讨论题
7.10 练习题
第8章 类:CritterCaretaker
8.1 定义新类型
8.1.1 SimpleCritter程序简介
8.1.2 定义类
8.1.3 定义成员函数
8.1.4 实例化对象
8.1.5 访问数据成员
8.1.6 调用成员函数
8.2 使用构造函数
8.2.1 ConstructorCritter程序简介
8.2.2 声明和定义构造函数
8.2.3 自动调用构造函数
8.3 设置成员访问级别
8.3.1 PrivateCritter程序简介
8.3.2 指定公共和私有访问级别
8.3.3 定义访问器成员函数
8.3.4 定义常量成员函数
8.4 使用静态数据成员和成员函数
8.4.1 StaticCritter程序简介
8.4.2 声明和初始化静态数据成员
8.4.3 访问静态数据成员
8.4.4 定义静态成员函数
8.4.5 调用静态成员函数
8.5 CritterCaretaker游戏简介
8.5.1 设计游戏
8.5.2 设计伪代码
8.5,3 Critter类
8.5.4 main()函数
8.6 小结
8.7 问题与答案
8.8 讨论题
8.9 练习题
第9章 高级类和动态内存:GameLobby
9.1 使用聚合
9.1.1 CritterFarm程序简介
9.1.2 使用对象数据成员
9.1.3 使用容器数据成员
9.2 使用友元函数和操作符重载
9.2.1 FriendCritter程序简介
9.2.2 创建友元函数
9.2.3 重载操作符
9.3 动态分配内存
9.3.1 Heap程序简介
9.3.2 使用new操作符
9.3.3 使用delete操作符
9.3.4 避免内存泄漏
9.4 使用数据成员和堆
9.4.1 HeapDataMember程序简介
9.4.2 声明指向堆上的值的数据成员
9.4.3 定义析构函数
9.4.4 定义复制构造函数
9.4.5 重载赋值操作符
9.4.6 GameLobby程序简介
9.4.7 Player类
9.4.8 Lobby类
9.4.9 Lobby::AddPlayer()成员函数
9.4,10 Lobby::RemovePlayerf)成员函数
9.4.11 Lobby::Clear()成员函数
9.4.12 operator<<()成员函数
9.4.13 main()函数
9.5 小结
9.6 问题与答案
9.7 讨论题
9.8 练习题
第10章 继承和多态:Blackiack
lO.1 继承简介
10.1.1 SimpleBoss程序简介
10.1.2 从基类派生
10.1.3 从派生类实例化对象
10.1.4 使用继承的成员
10.2 控制继承基础上的访问
10.2.1 SimpleBoss2.0程序简介
10.2.2 对类成员使用访问修饰符
10.2.3 在派生类时使用访问修饰符
10.3 调用和覆盖基类成员函数
10.3.1 OverridingBoss程序简介
10.3.2 调用基类构造函数
10.3.3 覆盖基类成员函数
10.3.4 调用基类成员函数
10.4 在派生类中使用重载的赋值操作符和复制构造函数
10.5 多态简介
10.5.1 VirtualBoss程序简介
10.5.2 定义虚拟成员函数
10.5.3 定义虚拟析构函数
10.6 使用抽象类
10.6.1 AbstractCreature程序
10.6.2 声明纯虚拟函数
10.6.3 从抽象类派生一个类
10.7 管理代码
10.7.1 Critter项目
10.7.2 使用一个文件
10.7.3 创建头文件
10.7.4 创建实现文件
10.7.5 创建应用程序文件
10.8 Blackiack游戏简介
10.8.1 设计类
10.8.2 设计游戏逻辑
10.8.3 Card类
10.8.4 Hand类
10.8.5 GenericPlayer类
10.8.6 Player类
10.8.7 House类
10.8.8 Deck类
10.8.9 Game类
10.8.10 main(0函数
10.8.11 重载operator<<函数
10.9 小结
10.10 问题与答案
10.11 讨论题
10.12 练习题
附录A创建第一个C++程序
附录B操作符优先级
附录C关键字
附录DASCII表
附录E转义序列