第1章 嵌入式开发初体验 1
1.1 什么是嵌入式系统 1
1.2 嵌入式系统的体系结构 2
1.3 主流嵌入式系统简介 3
1.4 为什么选择C++ 5
1.5 C++编译环境介绍 9
1.5.1 常用的C++编译环境介绍 9
1.5.2 g++和其他编译器编译的异同 11
第2章 嵌入式C++开发必备知识 16
2.1 C++程序结构 16
2.2 变量与常量 18
2.3 基本数据类型 19
2.4 C++基础语句 35
2.4.1 单分支语句 36
2.4.2 多分支语句 39
2.4.3 循环语句 44
2.5 操作符与表达式 54
2.6 指针 71
2.6.1 认识指针 71
2.6.2 动态内存的申请与释放(new/free) 79
2.6.3 指针的使用 82
2.7 数组 86
2.7.1 认识数组 87
2.7.2 普通数组的使用 93
2.7.3 高级数组的使用 101
2.8 结构体 111
2.8.1 结构体的基础知识 111
2.8.2 结构体在实战中的使用 116
2.9 位段 123
2.10 联合 124
2.11 函数 129
2.11.1 函数的基础知识 129
2.11.2 函数高级应用 131
2.12 浅谈引用 148
2.13 数据类型强制转换 152
第3章 C++标准输入/输出 157
3.1 命名空间 157
3.1.1 理解命名空间 157
3.1.2 使用自定义命名空间 161
3.2 C++标准输入/输出 167
3.2.1 C++流介绍 167
3.2.2 输入/输出格式控制 170
第4章 C++面向对象基础 183
4.1 面向对象与面向过程的比较 184
4.2 初步理解C++的类 188
4.3 this指针的分析 197
4.4 构造函数与析构函数 203
4.5 const成员 214
4.6 static成员 223
4.7 友元 238
第5章 深入讨论构造函数 242
5.1 复制构造函数 242
5.2 复制赋值运算符函数 249
5.3 临时对象的构造函数 255
第6章 C++调试 259
6.1 C++错误常用的追踪方式 259
6.1.1 C++编程常见的错误类型 259
6.1.2 常用调试方法 261
6.2 断点单步追踪法 262
6.2.1 准备工作 262
6.2.2 常用调试操作 262
6.3 内核状态追踪法 276
第7章 C++继承 279
7.1 继承形式 279
7.2 三种继承方式 284
7.3 继承的构造函数与析构函数 296
7.4 虚继承 307
第8章 编译时多态 312
8.1 运算符重载初步 312
8.2 双目操作符重载 314
8.3 单目运算符重载 331
8.4 下标操作符重载 344
8.5 函数运算符重载 355
8.6 类型转换操作符重载 362
第9章 运行时多态 369
9.1 多重继承对象间赋值回顾 369
9.2 认识虚函数 376
9.3 虚函数原理 380
9.4 多态与编译器的“战争” 390
9.5 运行时多态的两个辅助工具 395
9.6 C++异常机制 401
第10章 自定义模板 407
10.1 模板的定义与实例化 407
10.2 模板的特殊处理 418
第11章 标准模板库 434
11.1 容器 435
11.1.1 序列式容器 437
11.1.2 关联式容器 448
11.1.3 容器适配器 468
11.2 迭代器 474
11.3 算法 477
11.4 空间分配器 478
11.5 仿函数 481