1、两者最主要的区别在于编程思想上。
c是一个结构化编程语言,注重的是过程,通常用于实现数据结构和算法。c语言通常注重的是给定一个输入,如果通过一个过程来给出一个输出。
而c++则有面向对象的思想,是一个自顶向下,逐步求精的过程。
2、从语言角度来看,c是c++的子集。
c++是带类的c,c++具有面向对象的过程。但是c中不具备面向对象的思想。c++在c的基础上引入了函数重载、类、模板、容器等。
3、c中的struct与c++中的class的区别
c中struct只能用于定义复杂数据类型的关键字,不能再c的struct中放函数。并且c中的struct不能设定访问权,根本没有访问权限这一说。
c++中class可以放复杂数据类型,也将函数定义在类内。并且可以通过public、private、protected来设定成员的访问权限。
4、c++中struct与c++中class的区别
c++中struct出了与c++中class默认访问权限不同之外,其他两者都是相同的。c++中struct的默认访问权限是public的,class默认是private的。其他的继承、虚函数等两者相同的。
5、c中的函数编译方式与c++中函数编译方式不同
对于一个函数,c只是根据函数名进行编译,c++中是根据函数名和函数形参类型进行编译的。因此c中的函数不支持重载,c++中函数支持重载。如下两个函数:
void func(int ,int);
void func(int);
这两个函数在c中都被编译为_func_的新名字,从而引发二义性错误。
在c++中两个函数分别被编译为_func_int_int_和_func_int_这两个函数名。他们在内核中是两个不同的函数,因此c++中函数允许重载。