C++几乎是C的超集,只有少量功能C++不支持。C语言和C++语言在很多方面是兼容的。
C和C++的关系,就像是win98和winXP的关系。C++是在C的基础上增加了新的理论,玩出了新花样,所以叫C++。
C和C++的区别:
1.C语言是面向过程的,C++是面向对象的。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。而C++首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可通过获取对象的状态信息得到输出或实现过程(事务)控制。这是C与C++的最大区别,也即它们用于解决问题的思想方法是不一样的。
2.类型安全:C语言的一些操作在C++中被认为是非类型安全的,比如(void *)类型的数据使用。
下面这句代码在C中可以编译:
int *x = malloc(sizeof(int) * 10);
而在C++中需要进行强制类型转换才可以:
int *x = (int*) malloc(sizeof(int) * 10);
3.函数重载:C语言不支持函数重载,C++支持函数重载。
4.关键字上:如C++还可以使用new/delete和new[]/delete[]完成对对象的创建和释放,C只使用malloc和free。C++还有auto和explicit关键字,体现的是C++显式和隐式转换的概念。
5.函数参数传递机制:C语言中值传递是唯一可用的参数传递机制, C++既有C的值传递又有引用传递。
6.C++有三大主要特征:封装、继承和多态。封装隐藏了实现细节,使得代码模块化;派生类可以继承父类的数据和方法,扩展已经存在的模块,实现代码重用。
7.C++还具有很多种新的特性,比如C++支持范式编程,如函数模板、模板类,C++的异常机制,强大的STL标准库。