第1章 C++导论 1
程序 2
解决问题 2
过程化、结构化和面向对象编程 3
什么C++? 4
为什么需要面向对象编程? 4
对付复杂性 5
对象 5
压缩 5
衍生 6
特殊性 6
普遍性和多样性 7
三个支柱 8
如何进行面向对象分析和设计 8
小项目的面向对象分析和设计 9
想象力 9
Decryptix!——想象力 10
想象 10
需求分析 10
快而乱的设计 11
实施 11
程序和源代码 12
编译器 12
你的开发环境 13
文本编辑 13
编译源代码 13
使用连接器建立可执行文件 14
开发周期 14
编译错误 16
发布 17
下一步 17
第2章 开始 19
小项目有多大? 20
为什么小项目是唯一好的教程 20
依靠你的知识 20
创建项目 20
检查代码 21
分析代码 24
名字空间 24
using namespace std 25
代码调试 26
返回一个值 27
main()进一步的意义 28
使用cout打印到屏幕 28
特殊打印字符 28
<<end1; 29
变量 29
变量类型 30
定义变量 30
区分大小写 30
关键字 31
一次建立多个变量 31
指定变量值 31
作用域 31
字符与数字 32
内置类型 33
整数长度 33
使用整数变量 35
有符号位和无符号位 35
循环无符号整数 35
循环有符号整数 36
常量 37
字母型常量 37
符号型常量 37
用#define定义常量 37
用const定义常量 38
第3章 程序流 41
建立健壮性 42
你试图完成什么? 44
用循环解决问题 44
块和复合语句 45
逻辑运算符 46
逻辑或运算符 47
逻辑与运算符 47
if语句 47
逻辑非运算符 48
快捷评估 49
关系优先 50
混合使用 50
do while 51
枚举常量 51
返回代码 52
来自用户的布尔应答 53
等于运算符 54
else 54
条件(或三元)运算符 55
综合 56
第4章 建立类 57
类是什么? 58
建立新的类型:类 58
界面与工具 58
客户 59
查看代码 59
声明类 60
类和对象 60
成员变量 60
成员方法或函数 60
对象的长度 61
文件 61
构造函数 61
析构函数 62
实现方法 62
包含头 64
实现构造函数 64
初始化 65
使用调试器 67
查看构造函数 67
其他方法 67
保存模式 68
什么是数组? 68
数组初始化 69
初始化字符数组 70
C风格字符串 70
数组元素 70
超出数组结尾的写入 71
电子写入错误 71
生成方案 72
查看定义值文件 75
第5章 玩游戏 77
inline实现 79
常量成员方法 80
签名 80
引用传递和数值传递 81
分析 83
分析 85
引用和通过引用传递 85
指针 86
指针是什么? 86
存储器寻址 87
间接引用 91
直接得到运算符 91
数组 92
指针与常量 92
数组作为指针 93
数组作为指针传递 96
使用断言 98
断言如何工作 99
宏 99
为什么使用圆括号? 100
宏与函数比较 101
字符串操作 101
井号 102
连接 102
预定义宏 102
通过数值一次通过程序 104
第6章 使用连接列表 117
动态数据结构 118
标准模板库 118
连接列表 120
了解连接列表 120
简单的驱动程序 123
howmany()方法 125
详述insert() 127
了解栈 129
栈与函数 130
使用new 132
new和delete 132
在decryptix!使用简单的连接列表 138
运行 141
玩游戏 145
用成员方法解决问题 146
运算符重载 147
完成运算符重载 147
通过数值传递 148
为什么引用? 149
第7章 典型方法 151
方法重载 152
形类 152
重载构造函数 152
miranda方法 153
缺省构造函数 153
何时可得到编译器提供的构造函数? 156
缺省析构函数 157
拷贝构造函数 157
缺省拷贝构造函数为什么无效? 165
写自己拥有的拷贝构造函数 171
赋值运算符 172
何时类似赋值而何时又不类似 179
回到连接列表 179
第8章 使用多态性 181
特殊性 182
特殊性的优越性 183
多态性 183
抽象数据类型 184
C++如何实现这些类 184
继承性语法 184
替换函数 185
虚拟方法 185
虚拟函数 186
虚拟取消器 187
实现多态性 191
增加第二个字母 204
第9章 实现模板 207
创建历史 208
加载的操作符 209
向cout中写类数据 210
友函数 211
头文件中的定义 217
首先创建非参数化类型 220
模板实例化 220
使用历史对象 222
使用历史 230
立即实现 231
第10章 使用标准模板库 233
将代码转换为STL 234
集合类 234
使用向量 234
为什么一个字符向量不是一个串? 236
检查输出 246
初始化Game 246
Play()方法 247
显示一个向量的内容 247
对Guess评分 248
创建历史 248
ShowHistory() 249
检查提示 250
第11章 计算机猜测 251
允许计算机学会猜测 252
查找规律 252
解码类 253
游戏实现 256
无限循环 261
游戏者猜测 262
游戏者如何玩游戏 271
计算机猜测 272
跳至VerifyComputerChoices() 272
创建Computer对象 274
第12章 分配职责 281
分配职责 282
分析 291
理解缺省参数 291
仔细分析SmartChar 292
监视其工作 292
Computer运行 293
创建一个聪明的字符串 293
Computer::Play 296
生成Guesses:回顾 298
猜测一致否? 298
产生一个猜测,详解 299
CanElminateCharacters的逻辑 300
CanElminateCharacters细节 300
GenerateAGuess 304
IsConsistent的细节 305
静态成员变量 307
静态效果 309
继续分析 309
删除在位字符 311
第13章 持久性 315
持久性 316
对象的持久性 316
保存的不同方式 316
设计持久性 316
Reader和Writer 318
用户接口问题 320
编写游戏 338
一步步编写游戏 338
写多态对象 339
第14章 异常处理 359
当异常发生时 360
退栈 366
从磁盘读取对象 367
恢复human 375
第15章 下一步 377
下一步 378
读另一本启蒙书? 378
支持新闻组 378
保持联系 378
附录A 379
附录B 389