第一篇
第一章 开始
1.1 引言
1.2 C++历史简介
1.3 程序
1.4 本书要解决的问题
1.5 C++ 的发展历程
1.6 C++ 和JAVA
1.7 学习C++应该先学C吗
1.8 ANSI标准
1.9 准备编程
1.10 开发环境
1.11 编译源代码
1.12 用链接器生成可执行文件
1.13 程序开发周期
1.14 HELLO.CPP——你的第一个C++程序
1.15 编译错误
第二章 C++程序的组成部分
2.1 一个简单程序
2.2 COUT简介
2.3 注释
2.4 函数
第三章 变量与常量
3.1 什么是变量
3.2 定义一个变量
3.3 一次创建多个变量
3.4 给变量赋值
3.5 typedef
3.6 short与long的使用
3.7 字符型变量
3.8 常量
3.9 枚举型常量
第四章 表达式与语句
4.1 语句
4.2 表达式
4.3 运算符
4.4 赋值运算符与数学运算符的组合
4.5 自加与自减
4.6 优先级
4.7 括号的嵌套
4.8 真值的本质
4.9 IF语句
4.10 在嵌套的IF语句中使用大括号
4.11 逻辑运算符
4.12 简化求值
4.13 关系运算符的优先级
4.14 有关真假关系的进一步讨论
4.15 条件运算符
第五章 函数
5.1 什么是函数
5.2 函数的返回值,参量和变元
5.3 声明和定义函数
5.4 函数的执行
5.5 局部变量
5.6 使用局部变量的注意事项
5.7 有关局部变量的更多知识
5.8 函数语句
5.9 全局变量
5.10 有关函数变元的更国知识
5.11 参量作为局部变量
5.12 有关返回值的更多知识
5.13 默认参数
5.14 函数重载
5.15 有关函数的一些专门话题
5.16 函数是如何工作的
第六章 基本类
6.1 创建新类型
6.2 类和成员
6.3 访问类成员
6.4 私有和公有
6.5 实现类的方法
6.6 构造函数和析构函数
6.7 成员函数CONST
6.8 界面与实现
6.9 在何处放置类声明和方法定义
6.10 内嵌实现
6.11 用其他类作为成员数据的类
6.12 结构体
第七章 程序流程
7.1 循环
7.2 WHILE循环
7.3 do...while循环
7.4 Do...while
7.5 for循环
7.6 循环总结
7.7 switch语句
第二篇
第八章 指针
8.1 什么是指针
8.2 为什么要使用指针
8.3 栈和自由存储区
8.4 内存泄漏
8.5 在自由存储区内创建对象
8.6 删除对象
8.7 访问数据成员
8.8 自由存储区中的成员数据
8.9 this指针
8.10 迷途指针,失控指针或悬浮指针
8.11 const指针
8.12 指针算法
第九章 引用
9.1 什么是引用
9.2 对引用使用取址运算符
9.3 空指针和空引用
9.4 什么可以被引用
9.5 通过引用传递函数参数
9.6 理解函数头文件和原型
9.7 返回多个值
9.8 使用引用传递来提高效率
9.9 何时使用引用以及何时使用指针
9.10 混合使用引用和指针
9.11 不要返回对不在作用域中的对象的引用
9.12 返回对一个在堆中的对象的引用
9.13 指针的传递
第十章 高级函数
10.1 重载成员函数
10.2 使用默认值
10.3 默认值和重载函数的选择
10.4 默认构造函数
10.5 重载构造函数
10.6 初始化对象
10.7 复制构造函数
10.8 运算符重载
10.9 转换运算符
第十一章 继承
11.1 什么是继承
11.2 私有型与保护型
11.3 构造函数和析构函数
11.4 覆盖函数
11.5 虚函数
第十二章 数组和链表
12.1 什么是数组
12.2 数组元素
12.3 超过数组末尾写入数据
12.4 篱笆标志错误
12.5 初始化数组
12.6 声明数组
12.7 对象的数组
12.8 多维数组
12.9 初始化多维数组
12.10 有关内存的一些话题
12.11 指针数组
12.12 在自由存储区声明数组
12.13 指向数组的指针和指针数组
12.14 指针与数组名
12.15 删除自由存储区中的数组
12.16 char数组
12.17 strcpy()和strncpy()
12.18 字符串类
12.19 链表和其他结构
12.20 链表案例研究
12.21 组件部分
12.22 你学到了什么
12.23 数组类
第十三章 多态性
13.1 单一继承的问题
13.2 多重继承
13.3 抽象数据类型
13.4 观察者模式
第十四章 特殊类和函数
14.1 静态成员数据
14.2 静态成员函数
14.3 函数指针
14.4 成员函数指针
第三篇
第十五章 高级继承
15.1 包容
15.2 继承实现/包容与代理
15.3 私有继承
15.4 友元类
15.5 友元函数
15.6 友元函数和运算符重载
15.7 重载插入运算符
第十六章 流
16.1 流概述
16.2 流和缓冲区
16.3 标准I/O对象
16.4 重定向
16.5 用cin输入
16.6 cin的其他成员函数
16.7 使用cout输出
16.8 相关函数
16.9 控制符,标志和格式化指令
16.10 流和printf()函数
16.11 文件的输入和输出
16.12 ofstream
16.13 二进制文件和文本文件
16.14 命令行处理
第十七章 名字空间
17.1 开始
17.2 按名字解析函数和类
17.3 使用名字空间
17.4 关键字using
17.5 名字空间别名
17.6 创建名字空间
17.7 未命名的名字空间
17.8 标准名字空间std
第十八章 面向对象的分析和设计
18.1 C++是面向对象的吗
18.2 构造模型
18.3 软件设计:建模语言
18.4 软件设计:过程
18.5 概览
18.6 需求分析
18.7 设计
第十九章 模板
19.1 什么是模板
19.2 参数化类型
19.3 模板定义
19.4 模板函数
19.5 模板和友元
19.6 使用模板单元
19.7 标准模板库
19.8 容器
19.9 顺序容器
19.10 堆栈
19.11 了解队列
19.12 了解关联容器
19.13 算法类
第二十章 异常和错误处理
20.1 程序中的各种错误
20.2 异常
20.3 使用try块和catch块
20.4 异常中的数据和命名异常对象
20.5 异常和模板
20.6 没有错误的异常
20.7 错误和调试
第二十一章 进一步掌握的内容
21.1 预处理器和编译器
21.2 查看中间结果
21.3 使用#define
21.4 包含和包含警卫
21.5 宏函数
21.6 内联函数
21.7 字符串操作
21.8 预定义宏
21.9 assert()
21.10 位操作
21.11 风格
21.12 下一步
附录A 运算符的优先级
附录B C++关键字
附录C 二进制和十六进制