c语言虽说经常和c++在一起被大家提起,但可千万不要以为它们是一个东西。现在我们常用的C语言是C89标准,C++是C++99标准的。C89就是在1989年制定的标准,如今最新的是C11和C++11标准。根据不同的标准,它们的功能也会有所不同,但是越新的版本支持的编译器越少,所以本文在讨论的时候使用的C语言标准是C89,C++标准是C++99.我们来介绍C语言和C++中那些不同的地方。
c是面向过程的语言,关注的重点是“算法”,可以认为是一系列有序的步骤,只要按照这个步骤来做,就能得到预期的结果,这种思考方式更接近于计算机的思考方式。优点是可以把控到每个细节,因此程序的执行效率高;缺点是开发效率低。
c++是面向对象的编程语言,关注重点是“对象”,可以认为“对象”的本质是一系列由于某种联系聚焦在一起数据单元体。不同单元体之间进行数据交互,从而实现代码运行的结果,程序员只需要站在更高层次去管理这些单元体,这种思考方式更接近人类的思考方式。优点是程序的开发效率高;缺点是执行效率低。
c++新增了很多新的概念如引用,类,对象,重载...
1.c++引用:引用与指针类似,但是使用更加简便,功能更加简单,可以认为引用是一个变量的“别名”,对引用进行操作与直接操作变量完全相同。
用一段小小的代码来验证,输出a和b的地址相同证明b可以代替a;所以操作a和b的效果是一样的;2.类:类是对同一类对象的抽象总结,是一个概念,有了类才会有对象所以需要先写类的代码,才能按照这段代码创建对应的对象。参考类来创建对象的过程被称为“实例化”。因此,对象无法脱离对应的类存在。
属性:用来描述对象的数据元素,通常是一个名词变量,例如:身高、体重、价格等,也称为“成员变量”或“数据成员”。
行为:用来描述对象执行的具体操作,通常对属性进行操作,以动词函数的方式存在,例如:吃饭、睡觉、运行等,也称为“成员函数”或“成员方法”。
成员变量和成员函数统称为“成员”。
这就是一个以String为类名的类;其中包括友元函数,成员变量,成员函数,构造函数同时对类进行了封装,箭头所指为对象,我们进行操作是对对象进行操作。
3.重载:及函数重载,运算符也是函数,所以运算符也可以重载,C++中允许使用同一个函数名臣定义多个函数,这就是函数重载。函数重载的前提是各个重载的函数之间参数(类型或个数)不同,与返回值类型无关。
如图所示:就是重载,函数名相同,通过改变参数的个数类型形成多个函数;除了上述的普通函数支持重载外,成员函数和构造函数等也支持函数重载,但是析构函数不支持函数重载。调用的时候c++会根据你给函数的参数类型,和个数自动匹配。
c++还有很多不同之处,慢慢学习慢慢积累。