C++ 对于C的具体扩展

28 篇文章 1 订阅
  1. 更严格的类型检测。C 语言中 const * ->non-const* / void * ->sometype * / type *-> type* 均是可以的,但是在 C++中则编译通不过。
  2. 添加了逻辑类型bool
  3. c 语言中枚举本质就是整型,枚举变量可以用任意整型赋值。而 C++中枚举变量,只能用被枚举出来的元素初始化。枚举的常被用来取代宏常量。
  4. 可被赋值的表达式 c 语言中表达式通常不能作为左值的,即不可被赋值,C++中某些表达式是可以赋值的。
  5. nullptr(C++11)   不会被 编译器优化为0
    为了避免引起调用或语义上的混淆,C++11,此入了 nullptr 用于区分,NULL 和
    0。
  6. 函数重载(由语境决定同名函数调用)
  7. C++ 允许, int 到 long 和 double, double 到 int 和 float, int 到
    short 和 char 等隐式类型转换。遇到这种情型,则会引起二义性。
  8. extern "c"   Name Mangling(命名倾轧) 依据函数声明来进行倾轧的。若声明被倾轧,则调用
    为倾轧版本,若声明为非倾轧版本,则调用也为非倾轧版本。C/C++的编译都是以文件
    为单位进行编译的..C++ 默认所有函数倾轧。若有特殊函数不参与倾轧,则需要使用 extercn "C" 来
    进行声明。
  9. 运算符重载
  10. 默认参数
    1. 默认顺序只能从右到左,不能跳跃
    2. 函数声明和定义一体时,默认认参数在定义(声明)处。 声明在 前,定义在后, 默认参数 只能在声明处;
    3. 默认值可以是常量,全局变量,或是一个函数。
    4. 实参个数 + 默认参数的个数 >= 形参个数
  11. 规则冲突(conflict)  一个函数,不能既作重载,又作默认参数的函数。当你少写一个参数时,系统无
    法确认是重载还是默认参数。
    当两者要实现同样的功能时,优先选用默认参数。
  12. 引用   目的是取代指针进行传参,引用的从宏观上可以理解为,扩展了变量的作用域,传参后,就像在本地解决问题
    一样。避免了传 n 级指针,解决 n-1 级的问题,即平级内解决问题。
    1. 引用,是一种 关系型声明,而非定义。不能独立存在,必须初始化,且与原 类型保持一致, 且不分配内存。
    2. 声明关系,一经声明,不可变更。
    3. 可对引用,再次引用。多次引用的结果,是某一变量具有 多个别名,多个别名间是平行关系。
    4. 辨别引用与其它,&符号前有数据类型时,是引用,其它皆为取地址或按位与。
    5. 指针的引用-有,引用的指针-无 引用的本质是指针,C++对裸露的内存地址(指针)作了一次包装。又取得了指针的
      优良特性。所以再对引用取地址,建立引用的指针没有意义。  
    6. 指针的指针-有,引用的引用-无  指针的指针,即二级指针。C++为了避免 C 语言设计指针的"失误",避免了引用的
      引用这种情况。由此也避免了引用的引用的引用的.....的引用的情况。
    7. 指针 数组-有,引用 数组-无
    8. 数组的引用
    9. 常引用  C++中 const 定义的变量称为常变量。 变量的形式,常量的作用,用作常量,常用于取代#define 宏常量。const 的本意,即不可修改。所以,const 对象,只能声明为 const 引用,使其
      语义保持一致性。non-const对象,既可以声明为const 引用,也可以声明为no-const
      引用。声明为 const 引用,则不可以通过 const 引用修改数据。
    10.  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢娘蓝桥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值