C++与C的区别及对C的增强

语法层次、高级特性、使用场景、效率

1)运行机制上:

C是面向过程编程语言,C++是面向对象编程语言。    

2)适用方向:

     C语言适合程序体积小、运行效率高的场合,如嵌入式等更接近底层的环境;

C++适合更上层、更复杂的场合,以及一些具体业务的场景。

3)编程语法上:

       C++具有封装、继承、多态三种特性;

       C语言不支持重载,C++支持重载;

       C++相比C语言增加了许多类型安全的功能,如强制类型转换;

       C++支持范式编程,如模板类、函数模板等;

4C++C的增强:

       标准C++引入了关键字namespace,可以更好的控制标识符的作用域;

       实用性增强:C语言中变量必须在作用域开始的位置定义,C++可以随用随定义;

       变量检测增强:C语言中可以定义多个同名全局变量,且都会链接到同一个地址,C++中不允许重复定义多个同名变量;

       struct类型增强:C语言中认为struct为一组变量的集合,并不认定为新的数据类型,C++中认为是新的数据类型;

       C语言函数不指定返回值类型就默认为int,C++中所有的变量和函数必须显示的指明,C语言中的默认类型不合法;

       新增bool类型:C语言中真用非0表示,假用0表示,C++中新增bool关键字,真为true,假为false,bool类型占据1B;

       三目运算符增强:C语言中三目运算符返回变量值,不可以作为左值,C++中三目运算符返回变量本身,变量本身非常量时可以作为左值;

       const增强:C语言中const可以说是假的const,有自己的存储空间,可以通过指针去修改值,C++中const是真正的常量,在编译期间就已经确定了值,通常不为普通的const变量分配存储空间,而保存在符号表中。

       真正的enum:C语言中枚举本质是整形,可以用任意整数赋值,C++中枚举是变量,只能用枚举出的参数进行赋值。

5C++C的扩展:

       引用:C++增加了引用,作为以定义变量的别名。引用的本质是常指针Type*const name;

       inline:C++提供了inline函数,实现真正的内嵌,编译器直接将函数嵌入只函数调用地方;

       C++提供了默认参数与占位参数;

       C++提供了函数重载功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章