龙空技术网

C语言与C++的比较

编程小新 118

前言:

目前大家对“c语言面向什么的”大概比较注重,小伙伴们都需要学习一些“c语言面向什么的”的相关知识。那么小编在网上汇集了一些对于“c语言面向什么的””的相关文章,希望看官们能喜欢,同学们一起来学习一下吧!

一、C++对C语言的扩展

1. 类型增强

(1)类型检查更严格,如无法将const类型的指针赋值给非const类型的指针;

(2)C++中有表示逻辑真假的布尔类型bool,可取值为true和false;

(3)真正的枚举,C++中的枚举变量只能用被枚举出来的元素初始化,C语言中枚举的本质是整型,枚举变量可以用任意整型赋值;

(4)表达式的值可以被赋值,如 (a=b)=10;;

2. 输入cin与输出cout流对象,cin是istream类对象,cout是ostream类对象。

3. 函数重载(静多态),重载底层实现:C++利用name mangling(倾轧)技术来改变函数名,以区分同名函数。

4. 操作符重载,如<<、&、*,C++认为一切操作符都是函数,只有部分操作符不可重载。

5. C++支持函数的默认参数

6. 引用 Reference,变量名本身是一段内存的引用,即别名alias,而引用是为已有变量再起一个别名。

7. new / delete 运算符

C语言中提供了 malloc 和 free 两个系统函数,完成对堆内存的申请和释放;而 C++则提供了两关键字 new 和 delete(也包括 new[] 和 []delete),不需要头文件。

8. 内联函数 inline function,多用于代码行数较少的函数

9. 类型强转 type cast

静态类型转换,static_cast;重解释类型转换,reinterpret_cast;脱常类型转换,const_cast;动态类型转换,dynamic_cast。

10. 命名空间 namespace scope,命名空间为了大型项目开发引入的一种避免命名冲突的一种机制。

二、关于封装

C语言风格封装是使用结构体类型将多个类型打包成一体,形成新的类型。新类型并不包含对数据类的操作,所有的操作都是通过函数的形式。

C++认为C语言的封装不彻底,一是数据与行为分离,二是没有权限控制,三是封装应当实现对内数据开放、逻辑抽象,对外提供接口、屏蔽数据。class封装的本质是将数据与行为绑定在一起然后通过对象来完成操作。

三、C++与C语言的区别

1. C语言是面向过程的;C++是面向对象的。

C语言程序的设计首要考虑的是如何通过一个过程,对输入进行运算处理得到输出。

C++首要考虑的是如何构造一个对象模型,让这个对象能够契合与之对应的问题域,通过获取对象的状态信息得到输出或实现过程事物控制。

2. C语言的结构概念只有成员变量,没有成员方法;C++结构中既有成员变量又有成员函数,且数据成员有权限控制。

3. 头文件

C语言中所有的头文件都带后缀 .h(比如stdio.h)​;C++中有系统提供的头文件不带后缀 .h,用户自己编制的头文件可以有后缀

最后,如果你想学C/C++可以私信小编“01”获取素材资料以及开发工具和听课权限哦!

标签: #c语言面向什么的