C++学习记录一

概述

一、嵌入式开发中为什么学习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变量的地址

你可能感兴趣的:(C语言,C++,C++)