随着嵌入式硬件技术的不断更新换代,对于嵌入式软件的开发与应用,仅单纯地使用汇编语言、C 语言已经很难满足大型项目的开发需求。目前C++已然成为嵌入式应用层开发的最流行编程语言之一,本书重点讲解实际项目中C++语言的156 个常用知识点,并分为156 个专题,以“加油站”的形式剖析项目的多种使用场景,归纳总结注意事项,出现问题的应对策略,并且着重指出了新入门的软件工程师比较模糊的问题及容易犯错的地方。此外,本书还设置了80 个项目技能实战训练的专题,以“训练场”的形式帮助读者提高实际的项目开发技能,使读者能够举一反三,并深刻理解,从而提高实际的开发技能。 本书结构清晰、内容由浅入深、循序渐进,可作为高校嵌入式系统程序设计的教材和嵌入式程序设计培训的实践教材及课程设计辅助读物,也可以作为广大嵌入式程序设计爱好者、在校大学生及单片机爱好者的自学用书。
第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