C++语言是在C语言的基础上进行了较大量的扩充和改进而得到的。它继承了C语言的全部内容,并在C语言的基础之上增加了面向对象编程的内容,C++既支持面向过程的程序设计,又支持新型的面向对象程序设计。因此C++并不是一种新的语言,也不是纯粹的面向对象程序设计语言,因此学过C语言的人只要了解了C++与C语言的区别,很快就可进入到C++的面向对象程序设计部分。
C++与C语言的关系如下:
1、C++保持了与C语言的兼容
这种兼容性表现在许多C代码的程序不经修改就可为C++所用。用C语言编写的许多库函数和应用软件也都可以用于C++。
但是,这种兼容性使得C++不是一个纯正的面向对象程序设计语言。因为C语言是面向过程的语言,C++要与C语言兼容,所以C++也要支持面向过程的程序设计。由于面向过程程序设计和面向对象程序设计是两种不同风格的程序设计技术,对于已经习惯于面向过程程序设计的人员可能会有一定的障碍,相反没有学过程序设计的人员不会受面向过程程序设计方面的约束,更利于掌握面向对象程序设计技术。
2、C++对C语言作了很多改进
C++首先保持了语言的简洁、高效和接近汇编语言等优点,同时又给语言的不足和问题作了很多改进。下面列出一些重要改进之处。
(1)增加了一些在新的运算符,使得C++应用起来更加方便。例如:::,new,delete,.*,->.等。
(2)改进了类型系统,增加了安全性,C语言种类型转换很不严格。C++规定类型转换多采用强制转换。又规定函数的说明必须用原型。对缺省类型作了些限制。
(3)增加了引用概念,使得引用函数参数带来了很大方便。
(4)允许函数重载,允许设置缺省参数,这些措施提高了编程的灵活性,减少了冗余性。又引进了内联函数的概念,提高了程序的效率。
(5)对变量说明更加灵活了。C语言只允许在函数体或分程序内,显示对变量的说明语句,再是执行语句,两者不可交叉使用。C++打破了这一限制,可以对变量随时进行说明。
3、C++与C语言的本质差别
C++与C语言的本质差别就在于C++是面向对象的,而C语言是面向过程的。或者说C++是在C语言的基础上增加了面向对象程序设计的新内容,是对C语言的一次更重要的改革,使得C++成为软件开发的重要工具。