C++概述(一)

来源:互联网 发布:新闻文章网站源码 编辑:程序博客网 时间:2024/06/05 11:22

一.    嵌入式开发为什么要学习C++语言?

回顾:嵌入式开发为什么要学习C语言?

1. 嵌入式软件平台的内核是由C语言实现的

2. 嵌入式选用C语言也基于C语言的特点:

C语言的可移植性好,即移植到另一平台上运行时,所需修改的代码少。C语言在不同的软件平台,拥有相同的语法。在不同的硬件平台下同样适用。所以C语言可以在不同体系结构的软硬平台执行。

C语言灵活紧凑,使用灵活的语法机制,并能直接访问硬件。C语言中,我们可以通过指针控制内存以及寄存器。我们知道汇编和C语言都可以直接访问硬件。但汇编的语法较为简单。因此在复杂的算法中,我们用C语言。而汇编用于初始化(启动方面)。

运行效率高。相比其他解释型语言(Java,Python运行时将程序翻译成机器语言),编译型语言——C语言可以直接生成硬件识别的机器码,所以运行效率高。

 

C语言也有以下缺点

C语言没有深思熟虑的设计过程,使用时存在很多灰色地带;

残留量过多,直接利用指针进行内存操作

 

面向过程程序设计:数据结构+算法 用户需求简单而固定

面向对象程序设计:由现实世界建立软件模型 可适应用户需求的不断变化

(暂时对面对过程和面对对象的形象理解是:面向对象就是对一幢楼的设计,而面对过程就是建成这幢楼的具体实现)

 

根据以上C语言的缺点和面向过程方法论暴露越来越多缺陷,业界决定引入面向对象的方法,而C++就是一个高效的面向对象语言,并且能兼容已经存在的代码

 

C++的学习可以强化C语言的编程能力,也可以帮助其他编程语言的学习。

编程开发语言:C

C++ 用于前端+后台开发

Java 开发安卓应用

PHP 用于web开发

python ,shell 脚本语言用于软件测试和网站

C# 开发windows前端开发

OC 开发IOS应用

Go用来开发Android应用

二.C++相关基础知识点

C++支持的编程范式:(编程范式更倾向于哪种规则编程)

过程式 数据抽象 基于对象 面向对象式 函数式 泛型式 模板元形式

 

设计模式:简单工厂模式 工程模式 适配器模式 代理模式

 

值语义与对象语义:值语义可以拷贝和赋值,对象语义不可以

 

C++之父:本贾尼.斯特劳斯特卢普

 

三.从C到C++的升级

1.申明和定义

C++更强调语言的实用性,所有变量可以在需要使用时定义

 

2.register变量

C语言:

1.      register关键字的作用

register关键字主要是请求编译器将变量尽可能地(由于CPU的寄存器是稀缺资源,所以只能尽可能的存放,不能保证所有数据都能保存在寄存器中)存储在寄存器中,省去了CPU向内存抓去数据的时间,提高程序的运行效率。

2.       什么时候使用register关键字?

一般将频繁使用的变量声明为register变量。

3.       register关键字使用注意事项

1)        register变量只能修饰局部变量,不能修饰全局变量和函数。(由于全局变量会被多个进程访问,如果将变量定义为register变量,只有当前进程能访问,其他进程都不能访问,所以只能修饰局部变量)。

2)        register变量不能用取地址来获取其地址。(由于取地址获取的是内存的地址,而register变量保存在寄存器中)

3)        register修饰的变量都是CPU所接受的数据类型

C++:

编译器仍支持register关键字,但C++编译器有自己的优化方式,当编译器发现需要取register变量的地址是,register对变量的声明会无效

 

3.const关键字

C语言:

1.const关键字的作用

const修饰的变量为只读变量,表示不能通过变量名进行修改,但可以通过变量的空间进行修改。

2.什么时候使用const关键字?

一般用来修饰函数形参,避免在函数实现时修改实参的值,便于调试。

3.      const关键字使用注意事项

1)        使用const修饰变量时,变量一定要初始化。

2)        注意哪些函数形参需要使用const关键字(这是函数实现者好的体现,防止函数对实参进行修改)。

实例:

const int *p = #//不能通过p修改其指向空间的值

int * const p = #//不能通过p修改其对应空间的值

(离谁近谁不能修改自身的值)

C++:

const修饰的变量为只读常量

const 对应 const :

cons tint num = 5;

cons tint *p = #

0 0