概述
一、嵌入式开发中为什么学习C++语言?
1、 嵌入式软件工程师岗位需求
2、 面向过程编程VS面向对象编程
面向过程编程的特点:
①C语言的特点
*C语言是在时间的过程中逐步完善起来的
·没有深思熟虑的设计过程(使用时存在很多“灰色地带”)
·残留量过多低级语言的特征(直接利用指针进行内存操作)
*C语言的目标是高效的
·最终程序执行效率的高效
②面向过程的编程特点
面向过程程序设计:数据结构+算法
*主要解决科学计算问题,用户需求简单而固定
*特点:分析解决问题所需要的步骤
利用函数实现各个步骤
依次调用函数解决问题
*问题:软件可重用性差
软件可维护性差
构建的软件无法满足用户需求
面向对象编程的特点:
①面向对象的编程特点:
面向对象程序设计:由现实世界建立软件模型
*将现实世界中的事物直接映射到程序中,可直接满足客户需求
*特点:直接分析用户需求中涉及的各个实体
在代码中描述现实世界中的实体
在代码中关联各个实体协同工作解决问题
*优势:构建的软件能够适应用户需求的不断变化
直接利用面向过程方法的优势而避开其劣势
②C++语言的特点:
C语言+面向对象方法论:Objective-C、C++
3、 学习C++的优势
*强化C语言编程能力、提高编程的代码质量
*帮助学习其他编程语言
1、 C++之父:本贾尼·斯特劳斯特鲁普
2、 C++标准:98、03、11、14
3、 C++11值得学习的特性
智能指针如shared_ptr、weak_ptr等
rvalue reference
function/bind
lambdaexpression and closure
4、 C++开发工具(IDE:集成开发环境)Eclipse CDT
5、 推荐书籍:《C++ prime 第五版》(加入C++11的新特性)
《Effective C++ 3rd》*必看、两遍以上
《C++编程规范》
《敏捷软件开发——原则、模式与实践》
《代码大全》(第二版)
从C到C++的升级
1、 声明定义
for(int I = 0; i< 5; i++)
{
i作用域:for循环,出了for循环不能用
}
C++支持C99,所有变量可以在需要时定义
C语言中的变量必须在作用域开始的位置定义
2、 register关键字的升级
*register关键字请求“编译器”将局部变量存储于寄存器中
·C语言无法取得register变量地址
·C++中可以取得register变量的地址