C++学习---(一)

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

  1.强化C语言编程能力,提高编程的代码质量。

  2.帮助学习其他编程语言,建立从面向结构到面向对象的过程。

 

面向过程编程的特点?

  主要解决科学计算问题,用户需求简单而且固定。

 特点:

   分析解决问题所需要的步骤

   利用函数实现各个步骤

   依次调用函数解决问题

 问题:

   软件可重用性差

   软件可维护性差

   构建的软件无法满足用户需求

 

面向对象编程的特点?

   将现实世界中的事物直接映射到程序中,可直接满足用户需求。

 特点:

直接分析用户需求中涉及的各个实体

在代码中描述现实世界中的实体

在代码中关联各个实体协同工作解决问题

 优势:

构建的软件能够适应用户需求的不断变化

直接利用面向过程方法的优势而避开其劣势

 

C++支持的编程范式:

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

模式:

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

 

值语义与对象语义的区别?

   值语义可以拷贝与赋值,对象语义不可以进行拷贝与赋值。

 

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

C++语言的标准:

  C++98标准、 C++03标准、 C++11标准、 C++14标准

 

C++的声明和定义?

  C++中更强调语言的“实用性”,所有的变量都可以在使用时再定义。而C语言中的变量都必须在作用域开始的位置定义。

 

C++register关键字的变化?

  作用:Register关键字请求“编译器”将局部变量存储在CPU内部的寄存器中。

        C语言中无法取得register变量的地址。

   C++编译器发现程序中需要取register变量的地址时,register对变量的声明变得无效。

 

  C++编译器对const常量的处理?

     当碰见常量声明时在符号表中放入常量。

     编译过程中若发现使用常量则直接以符号表中的值代替

     编译过程中若发现对const使用了extern或者&操作符,则给对应的常量分配存储空间。

  注意:C++编译器虽然可能为const常量分配空间,但不会使用其存储空间中的值。

 

  内存分配与释放(new/delete)--------------运算符

C++中的动态内存分配

----C++中通过new关键字进行动态内存申请

----C++中的动态内存申请时基于类型进行的

----delete关键字用于内存的释放

 

例:变量的申请:

    Type*  pointer = new Type

    Delete pointer

    数组的申请:

    Type*  pointer = new Type[N];

    Delete [ ] pointer;

 

New关键字 和 malloc函数 的区别?

 New关键字是C++的一部分,malloc是由C库提供的函数

 New以具体类型为单位进行内存分配,malloc只能以字节为单位进行内存分配

 New在申请单个类型变量时可进行初始化,malloc不具备内存初始化的特性

 

引用:引用是给一个变量起别名

  定义引用的一般格式: 类型 &引用名 = 变量名;

如: int  a  = 1;

    Int  &b = a; //ba的别名,因此ab是同一个单元

注意:定义引用时一定要初始化,指明该引用变量是谁的别名

*在实际应用中,引用一般用作参数传递与返回值

   Const引用必须是指向const对象的引用。

  引用的另一个作用是用于返回引用的函数

  函数返回引用的一个主要目的是可以将函数放在赋值运算符的左边。

  注意:不能返回对局部变量的引用。

 

 引用与指针的区别?

 引用访问一个变量是直接访问,而指针是间接访问

 引用是一个变量的别名,本身不单独分配自己的内存空间,而指针有自己的内存空间

 引用一经初始化不能引用其他变量,而指针可以

 尽可能使用引用,不得已时使用指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值