1、C 和 C++ 的最大区别,在于他们解决问题的思想方法不一样。C 语言是面向过程的语言,而C++的面向对象的语言,所以 C 语言自然没有面向对象的封装、继承和多态等特性,也不支持面向对象的一些语法;
面向对象思想是基于面向过程思想的,要说面向对象思想,先来说说面向过程思想:
(1)面向过程思想,完成一个需求步骤:首先要搞清楚要做什么,然后分析怎么做,最后再通过代码体现,一步一步去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,从而完成需求。在上面的每一个具体的步骤中我们都是参与者,并且需要面对具体的每一个步骤和过程,这就是面向过程最直接的体现。面向过程编程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能函数相互调用,完成需求。
(2)面向对象思想,面向对象的思想是尽可能模拟人类的思维方式,使得软件的开发方法与过程尽可能接近人类认识世界、解决现实问题的方法和过程,把客观世界中的实体抽象为问题域中的对象。面向对象以对象为核心,该思想认为程序是由一系列对象组成。
特点:
●是一种更符合人类思维习惯的思想
●可以将复杂的问题简单化
●将我们从执行者变成了指挥者
面向过程和面向对象解决问题举例:
以洗衣服为例 :
1、面向过程 :接水到盆中——放入衣服——加入洗衣粉——浸泡——搓衣服——过水——拧干——晾干
2、面向对象 :将衣服放入洗衣机——加入洗衣粉——开启——晾干
2、C++ 支持函数重载,C 语言不支持;
3、C 程序中如果函数没有任何参数,需要将参数定义为 void,以此来限定函数不可传递任何参数,如果不进行限定,让参数表默认为空,其意义是可以传递任何参数。在 C++ 中,不带参数的函数表示该函数不能传递任何参数;
4、C 语言 struct 中不能有函数,而 C++ 语言 struct 中可以有函数,且允许函数是虚函数;
5、C 语言函数参数不支持默认值,而 C++ 语言支持参数默认值;
6、C++ 支持内联函数,而 C 语言不支持;
7、C++ 支持引用,而 C 语言不支持;
8、C 语言采用 malloc 和 free 函数动态申请和释放内存,而 C++ 使用 new 和 delete 运算符;
9、C 语言中只有局部和全局两个作用域,而 C++ 中有局部、全局、类、名称空间作用域。