第一部分 c++基础
第1讲 打磨工具
1.1 作者推荐
1.1.1 windows平台
1.1.2 macintosh os 9以及更早版本
1.1.3 其他平台
1.2 阅读文档
1.3 第一个程序
第2讲 阅读c++代码
2.1 注释
2.2 头文件
2.3 主程序
2.4 变量定义
2.5 语句
2.6 输出
第3讲 整数表达式
第4讲 字符串
第5讲 简单的输入
第6讲 错误消息
6.1 拼写错误
6.2 错误字符
6.3 未知操作符
6.4 未知名字
6.5 符号错误
6.6 从错误中获得乐趣
第7讲 for循环
7.1 有界循环
7.1.1 初始化
7.1.2 条件
7.1.3 后循环
7.1.4 for循环的工作原理
7.2 由你来做
第8讲 格式化输出
8.1 问题
8.2 字段宽度
8.3 填充
8.4 std前缀
8.5 对齐
8.6 探索格式化
8.7 替代语法
8.8 由你完成
第9讲 数组和向量
9.1 用向量代替数组
9.2 向量
9.3 迭代器
9.4 算法
9.5 成员类型
9.6 使用迭代器和算法
第10讲 自增和自减
10.1 自增
10.2 自减
第11讲 条件和逻辑
11.1 i/o和bool
11.2 布尔类型
11.3 逻辑操作符
11.4 旧式语法
11.5 比较操作符
第12讲 复合语句
12.1 语句
12.2 局部定义和范围
12.3 for循环头中的定义
第13讲 文件i/o简介
13.1 读文件
13.2 写文件
第14讲 数据结构映射
14.1 使用映射
14.2 迭代器
14.3 搜索映射
第15讲 类型同义词
15.1 typedef声明
15.2 常见的类型定义
第16讲 字符
16.1 字符类型
16.2 字符i/o
16.3 换行和移植性
16.4 转义字符
第17讲 字符分类
17.1 字符集
17.2 字符分类
17.3 区域设置
第18讲 大小写转换
18.1 简单的大小写
18.2 复杂的大小写
第19讲 编写函数
19.1 函数
19.2 函数调用
19.3 声明和定义
19.4 再谈单词计数
19.5 函数main()
第20讲 函数实参
20.1 实参传递
20.2 按引用传递
20.3 常量引用
20.4 const_iterator
20.5 输出参数
第21讲 使用算法
21.1 传递数据
21.2 谓词
21.3 其他算法
第22讲 重载函数名
第23讲 大数和小数
23.1 长整型和短整型
23.1.1 长整数
23.1.2 短整数
23.2 整数字面量
23.3 字节长度的整数
23.4 类型转换
23.5 整数算术
23.6 重载解析
第24讲 极大数和极小数
24.1 浮点数
24.2 浮点字面量
24.3 浮点特征
24.4 浮点i/o
第25讲 文档
25.1 doxygen
25.2 结构化注释
25.3 文档标签
25.4 使用doxygen
第26讲 项目1:身体质量指数
第二部分 自定义类型
第27讲 自定义类型
27.1 定义新类型
27.2 成员函数
27.3 构造函数
27.4 重载构造函数
第28讲 重载操作符
28.1 比较有理数
28.2 算术操作符
28.3 数学函数
第29讲 自定义i/o操作符
29.1 输入操作符
29.2 输出操作符
29.3 错误状态
第30讲 赋值与初始化
30.1 赋值操作符
30.2 构造函数
30.3 合并
第31讲 编写类
31.1 类的结构
31.2 成员函数
31.3 构造函数
第32讲 深入探索成员函数
32.1 调用默认构造函数
32.2 重温project 1
32.3 const成员函数
第33讲 访问级别
33.1 公有与私有
33.2 class与struct
33.3 简单的旧式数据
33.4 公有还是私有
第34讲 面向对象编程介绍
34.1 书籍与杂志
34.2 分类
34.3 继承
34.4 liskov置换原则
34.5 类型多态
第35讲 继承
35.1 派生类
35.2 析构函数
35.3 访问级别
35.4 编程风格
第36讲 虚函数
36.1 类型多态
36.2 虚函数
36.3 引用与切除
36.4 纯虚函数
36.5 虚析构函数
第37讲 类与类型
37.1 类与typedef
37.2 值类型
37.2.1 复制
37.2.2 赋值
37.2.3 比较
37.3 资源获取即为初始化
第38讲 声明与定义
38.1 声明与定义
38.2 内联函数
38.3 变量声明与定义
38.4 静态变量
38.5 静态数据成员
38.6 声明符
第39讲 使用多个源文件
39.1 多个源文件
39.2 声明与定义
39.3 #include文件
39.3.1 引号与括号
39.3.2 嵌套#include指令
39.3.3 包含监护
39.3.4 文档
39.4 外部变量
39.5 内联函数
39.6 “一份定义”规则
第40讲 函数对象
40.1 函数调用操作符
40.2 函数对象
40.3 复用成员函数
40.4 生成器函子
第41讲 有用的算法
41.1 搜索
41.1.1 线性搜索算法
41.1.2 二分搜索算法
41.2 比较
41.3 重组织数据
41.4 复制数据
41.5 删除元素
41.6 迭代器
第42讲 迭代器
42.1 迭代器的种类
42.1.1 输入迭代器
42.1.2 输出迭代器
42.1.3 前向迭代器
42.1.4 双向迭代器
42.1.5 随机访问迭代器
42.2 使用迭代器工作
42.3 const_iterator与const iterator
42.4 错误消息
42.5 专用迭代器
42.6 迭代器要点
第43讲 异常
43.1 异常介绍
43.2 捕获异常
43.3 抛出异常
43.4 程序栈
43.5 标准异常
43.6 i/o异常
43.7 自定义异常
43.8 对异常的建议
第44讲 更多操作符
44.1 条件操作符
44.2 短路操作符
44.3 逗号操作符
44.4 算术赋值操作符
44.5 自增与自减
第45讲 项目2:定点数
第三部分 泛型编程
第46讲 函数模板
46.1 泛型函数
46.2 使用函数模板
46.3 编写函数模板
46.4 模板形参
46.5 模板实参
46.6 声明与定义
46.7 成员函数模板
第47讲 类模板
47.1 参数化类型
47.2 参数化rational类
47.3 使用类模板
47.4 重载的操作符函数
47.5 混合类型
第48讲 模板特化
48.1 实例化与特化
48.2 自定义比较函数
48.3 特化函数模板
48.4 特征
第49讲 部分特化
49.1 退化的pair
49.2 部分特化
49.3 部分特化函数模板
49.4 值模板形参
第50讲 名字与名字空间
50.1 名字空间
50.2 嵌套名字空间
50.3 全局名字空间
50.4 名字空间std
50.5 使用名字空间
50.5.1 using指令
50.5.2 using声明
50.5.3 类中的using声明
50.6 无名名字空间
50.7 名字查找
第51讲 容器
51.1 容器的性质
51.2 技术报告1
51.3 成员类型
51.4 容器里能放什么
51.5 插入与清除
51.5.1 顺序容器的插入操作
51.5.2 顺序容器的清除操作
51.5.3 关联容器的插入操作
51.5.4 关联容器的清除操作
51.5.5 异常
51.6 迭代器与引用
51.7 顺序容器
51.7.1 类模板array
51.7.2 类模板deque
51.7.3 类模板list
51.7.4 类模板vector
51.8 关联容器
第52讲 国际字符
52.1 为何要“宽”
52.2 使用宽字符
52.3 宽字符串
52.4 宽字符的i/o操作
52.5 多字节字符集
52.6 unicode
52.7 通用字符名字
第53讲 区域设置与分面
53.1 问题
53.2 拯救者“区域设置”
53.3 区域设置与i/o
53.4 分面
53.5 字符类别
53.6 排序规则
第54讲 文本i/o
54.1 文件模式
54.2 字符串流
54.3 文本转换
54.4 boost词法转换
第55讲 项目3:货币类型
第四部分 实时编程
第56讲 指针
56.1 问题
56.2 解决方案
56.3 地址与指针
56.4 依赖图
第57讲 动态内存
57.1 分配内存
57.2 释放内存
57.3 指向为空的指针
57.4 实现标准容器
57.5 增加变量
57.6 特殊成员函数
第58讲 异常-安全
58.1 内存泄漏
58.2 异常与动态内存
58.3 自动删除指针
58.4 auto_ptr不能做的事
58.5 异常与构造函数
第59讲 旧式数组
59.1 c风格的数组
59.2 数组的限制
59.3 动态分配数组
59.4 多维数组
59.5 c风格的字符串
59.6 命令行参数
59.7 指针运算
第60讲 智能指针
60.1 重新审视auto_ptr
60.2 可复制智能指针
60.3 智能数组
60.4 pimpl
60.5 迭代器
第61讲 位操作
61.1 将整数作为位的集合
61.2 位掩码
61.3 移位
61.4 使用无符号类型安全移位
61.4.1 有符号与无符号类型
61.4.2 无符号字面量
61.4.3 类型转换
61.5 溢出
61.6 位域简介
61.7 可移植性
61.8 bitset类模板
第62讲 枚举
62.1 理想的枚举
62.2 作为位掩码的枚举
62.3 模拟枚举
62.3.1 枚举计算机语言
62.3.2 对语言进行比较
62.3.3 赋值
62.3.4 字符串和语言
62.3.5 初始化
62.3.6 读写语言
62.3.7 使用模拟的枚举
62.4 重新审视项目
第63讲 多重继承
63.1 多重基类
63.2 虚基类
63.3 类java接口
63.4 接口与模板
63.5 mix-in
63.6 友元来帮忙
第64讲 特征萃取与策略
64.1 案例研究:迭代器
64.2 迭代器特征萃取
64.3 案例研究:char_traits
64.4 基于策略的编程
第65讲 名字与模板
65.1 限定名的问题
65.2 非限定名的问题
第66讲 重载函数
66.1 重载函数回顾
66.2 重载解析
66.2.1 候选函数
66.2.2 可行函数
66.2.3 最佳可行函数
66.3 默认实参
第67讲 元编程
67.1 编译时编程
67.2 模板特化
67.3 部分特化
第68讲 项目4:计算器