第一部分 c++入门
第1章 编写 第一个程序
1.1 使用c++
1.2 寻找编译器
1.3 编译和链接源代码
1.4 创建您的 第一个程序
1.5 总结
1.6 问与答
1.7 作业
1.7.1 测验
1.7.2 答案
1.7.3 练习
第2章 程序的组成部分
2.1 使用c++的原因
2.1.1 编程风格
2.1.2 c++和面向对象编程
2.2 程序的组成部分
2.2.1 预处理器编译指令
2.2.2 源代码行
.2.3 注释
2.4 函数
2.5 总结
2.6 问与答
2.7 作业
2.7.1 测验
2.7.2 答案
2.7.3 练习
第3章 创建变量和常量
3.1 变量是什么
3.1.1 在内存中存储变量
3.1.2 无符号变量和带符号变量
3.1.3 变量类型
3.2 定义变量
3.3 给变量赋值
3.4 使用类型定义
3.5 常量
3.5.1 定义常量
3.5.2 枚举常量
3.6 总结
3.7 问与答
3.8 作业
3.8.1 测验
3.8.2 答案
3.8.3 练习
第4章 使用表达式、语句和运算符
4.1 语句
4.1.1 空白
4.1.2 复合语句
4.2 表达式
4.3 运算符
4.3.1 赋值运算符
4.3.2 数学运算符
4.3.3 组合运算符
4.3.4 递增和递减运算符
4.3.5 前缀运算符和后缀运算符
4.3.6 运算符优先级
4.3.7 关系运算符
4.4 if-else条件语句
4.4.1 else子句
4.4.2 复合if语句
4.5 逻辑运算符
4.5.1 与运算符
4.5.2 或运算符
4.5.3 非运算符
4.5.4 关系运算符和逻辑运算符的优先级
4.6 棘手的表达式值
4.7 总结
4.8 问与答
4.9 作业
4.9.1 测验
4.9.2 答案
4.9.3 练习
第5章 调用函数
5.1 函数是什么
5.2 声明和定义函数
5.3 在函数中使用变量
5.3.1 局部变量
5.3.2 全局变量
5.4 函数参数
5.5 从函数返回值
5.6 默认函数参数
5.7 函数重载
5.8 总结
5.9 问与答
5.10 作业
5.10.1 测验
5.10.2 答案
5.10.3 练习
第6章 控制程序流程
6.1 循环
6.2 while循环
6.2.1 退出循环
6.2.2 跳到下一次循环
6.3 do-while循环
6.4 for循环
6.4.1 高级for循环
6.4.2 嵌套循环
6.5 switch语句
6.6 总结
6.7 问与答
6.8 作业
6.8.1 测验
6.8.2 答案
6.8.3 练习
第7章 使用数组和字符串存储信息
7.1 数组是什么
7.2 写入时超过数组末尾
7.3 初始化数组
7.4 多维数组
7.4.1 初始化多维数组
7.4.2 内存简介
7.5 字符数组
7.6 复制字符串
7.7 总结
7.8 问与答
7.9 作业
7.9.1 测验
7.9.2 答案
7.9.3 练习
第二部分 类
第8章 创建基本类
8.1 类型是什么
8.2 创建新类型
8.3 类和成员
8.3.1 声明类
8.3.2 创建对象
8.4 访问类成员
8.5 实现成员函数
8.6 创建和删除对象
8.6.1 默认构造函数
8.6.2 编译器提供的构造函数
8.7 总结
8.8 问与答
8.9 作业
8.9.1 测验
8.9.2 答案
8.9.3 练习
第9章 高级类
9.1 const成员函数
9.2 接口和实现
9.3 组织类声明和函数定义
9.4 内联实现
9.5 将其他类用作成员数据的类
9.6 总结
9.7 问与答
9.8 作业
9.8.1 测验
9.8.2 答案
9.8.3 练习
第三部分 内存管理
第10章 创建指针
10.1 理解指针及其用途
10.1.1 在指针中存储地址
10.1.2 间接运算符(间接地使用指针)
10.1.3 指针、地址和变量
10.1.4 使用指针操作数据
10.1.5 查看存储在指针中的地址
10.1.6 为何使用指针
10.2 栈和堆
10.2.1 使用关键字new
10.2.2 使用关键字delete
10.2.3 避免内存泄露
10.3 总结
10.4 问与答
10.5 作业
10.5.1 测验
10.5.2 答案
10.5.3 练习
第11章 开发高级指针
11.1 在堆中创建对象
11.2 删除对象
11.3 使用指针访问数据成员
11.4 堆中的数据成员
11.5 this指针
11.6 悬摆指针
11.7 const指针
11.8 const指针和const成员函数
11.9 总结
11.10 问与答
11.11 作业
11.11.1 测验
11.11.2 答案
11.11.3 练习
第12章 创建引用
12.1 什么是引用
12.2 创建引用
12.3 将地址运算符用于引用
12.4 可引用的目标
12.5 空指针和空引用
12.6 按引用传递函数参数
12.6.1 使用指针实现swap()
12.6.2 使用引用实现swap()
12.7 理解函数头和原型
12.8 返回多个值
12.9 总结
12.10 问与答
12.11 作业
12.11.1 测验
12.11.2 答案
12.11.3 练习
第13章 高级引用和指针
13.1 按引用传递以提高效率
13.2 传递const指针
13.3 作为指针替代品的引用
13.4 什么情况下使用引用以及什么情况下使用指针
13.5 不要返回不在作用域内的引用
13.6 返回指向堆中对象的引用
13.7 谁拥有指针
13.8 总结
13.9 问与答
13.10 作业
13.10.1 测验
13.10.2 答案
13.10.3 练习
第四部分 高级c++
第14章 高级函数
14.1 重载成员函数
14.2 使用默认值
14.3 初始化对象
14.4 复制构造函数
14.5 总结
14.6 问与答
14.7 作业
14.7.1 测验
14.7.2 答案
14.7.3 练习
第15章 运算符重载
15.1 重载运算符
15.1.1 编写递增方法
15.1.2 重载后缀运算符
15.1.3 重载加法运算符
15.1.4 对运算符重载的限制
15.1.5 赋值运算符
15.2 转换运算符
15.3 总结
15.4 问与答
15.5 作业
15.5.1 测验
15.5.2 答案
15.5.3 练习
第五部分 继承和多态
第16章 使用继承扩展类
16.1 什么是继承
16.1.1 继承和派生
16.1.2 动物和继承
16.1.3 派生语法
16.2 私有和保护
16.3 构造函数和析构函数
16.4 将参数传递给基类构造函数
16.5 重写函数
16.5.1 重载和重写
16.5.2 隐藏基类方法
16.5.3 调用基类方法
16.6 总结
16.7 问与答
16.8 作业
16.8.1 测验
16.8.2 答案
16.8.3 练习
第17章 使用多态和派生类
17.1 使用虚函数实现多态
17.2 虚成员函数的工作原理
17.2.1 不能通过基类指针访问派生类特有的方法
17.2.2 切除
17.2.3 虚析构函数
17.2.4 虚复制构造函数
17.2.5 使用虚成员函数的代价
17.3 总结
17.4 问与答
17.5 作业
17.5.1 测验
17.5.2 答案
17.5.3 练习
第18章 使用高级多态
18.1 单继承存在的问题
18.2 抽象数据类型
18.2.1 纯虚函数
18.2.2 实现纯虚函数
18.2.3 复杂的抽象层次结构
18.2.4 哪些类是抽象的
18.3 总结
18.4 问与答
18.5 作业
18.5.1 测验
18.5.2 答案
18.5.3 练习
第19章 使用链表存储信息
19.1 链表和其他结构
19.2 链表案例研究
19.2.1 委托
19.2.2 链表的组成部分
19.3 作为对象的链表
19.4 总结
19.5 问与答
19.6 作业
19.6.1 测验
19.6.2 答案
19.6.3 练习
第六部分 特殊主题
第20章 使用特殊的类、函数和指针
20.1 静态成员数据
20.2 静态成员函数
20.3 将其他类对象作为成员
20.3.1 访问被包含类的成员
20.3.2 禁止访问包含类的成员
20.3.3 按引用还是按值复制
20.4 友元类和友元函数
20.5 函数指针
20.5.1 函数指针数组
20.5.2 将函数指针传递给其他函数
20.5.3 将typedef用于函数指针
20.5.4 成员函数指针
20.5.5 成员函数指针数组
20.6 总结
20.7 问与答
20.8 作业
20.8.1 问与答
20.8.2 答案
20.8.3 练习
第21章 使用c++0x新增的功能
21.1 下一版c++
21.2 空指针常量
21.3 编译阶段常量表达式
21.4 自动确定类型的变量
21.5 新的for循环
21.6 总结
21.7 问与答
21.8 作业
21.8.1 测验
21.8.2 答案
21.8.3 练习
第22章 面向对象分析和设计
22.1 开发周期
22.2 模拟报警系统
22.2.1 概念化
22.2.2 分析和需求
22.2.3 高级设计和详细设计
22.2.4 其他对象
22.2.5 设计类
22.2.6 添加其他类
22.2.7 事件循环
22.3 案例研究
22.3.1 三思而后行
22.3.2 分而治之
22.3.3 邮件格式
22.3.4 初步类设计
22.3.5 同根和不同根
22.3.6 设计接口
22.3.7 建立原型
22.3.8 /80规则
22.3.9 设计postmastermessage类
22.3.10 应用程序编程接口
22.3.11 小组编程
22.3.12 需要不断考虑的设计因素
22.3.13 使用驱动程序
22.4 总结
22.5 问与答
22.6 作业
22.6.1 测验
22.6.2 答案
22.6.3 练习
第23章 创建模板
23.1 什么是模板
23.2 模板实例
23.3 模板的定义
23.4 使用模板实例
23.5 总结
23.6 问与答
23.7 作业
23.7.1 测验
23.7.2 答案
23.7.3 练习
第24章 处理异常和错误
24.1 程序中的各种错误
24.2 处理意外情况
24.3 异常
24.4 使用try块和catch块
24.4.1 捕获异常
24.4.2 使用多条catch语句
24.4.3 使用引用以多态方式捕获异常
24.5 编写专业级代码
24.5.1 大括号
24.5.2 长代码行
24.5.3 switch语句
24.5.4 程序文本
24.5.5 标识符命名
24.5.6 名称的拼写和大写
24.5.7 注释
24.5.8 设置访问权限
24.5.9 类定义
24.5.10 包含文件
24.5.11 使用const
24.6 总结
24.7 问与答
24.8 作业
24.8.1 测验
24.8.2 答案
24.8.3 练习
第七部分 附录
附录a 二进制和十六进制
a.1 其他进制
a.2 不同进制之间的转换
a.2.1 二进制
a.2.2 为什么使用二进制
a.2.3 位、字节和半字节
a.2.4 什么是kb
a.2.5 二进制数
a.3 十六进制
附录b 术语表
附录c 配套网站