C++与C语言有何区别

C++与C语言有何区别

C++和C的关系就像是WinXP跟Win98的关系一样。C++是在C的基础上增加了新的理论,所以叫C加加。

先从总体上看两者的区别:

C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制,所以C与C++的最大区别在于它们用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“设计这个概念已经被融入到C++之中”。

下面具体分析C++与C的不同:

(1)类。类对于初学者,它是一个累赘。类的封装使得初学者对程序产生厌倦,感到不适和麻烦。

(2)引用。引用在C++中尽量不要用,除非万不得已。引用对于初学者更容易产生混淆,不知道哪个是引用,哪个是变量。

(3)函数的重载。初学者学函数的重载好像没什么坏处,但是这会使初学者潜意识里对C语言变量类型的重要性产生淡化,要记住C语言是对变量类型最敏感的,变量类型在C语言里的重要性是不言而喻的。

(4)流操作符。同样的道理,流对变量类型的重要性产生淡化,有时会产生使初学者莫名其妙的结果。

(5)操作符重载。这是典型的高级应用,初学者可能根本用不着,这个东西会让他们觉得C++很难,门槛高,看不懂。

(6)继承,以及虚函数。看起来深奥,实用价值很低。还有些东西就不发表评论了,如new,delete操作符等。

(7)C面向过程化,C++面向对象化,但并非完全。

C与C++的最大区别在于它们用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“设计这个概念已经被融入到C++之中”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行,而且“C加上好的设计”也能写出非常好的东西。

对语言本身而言,C是C++的子集,那么是什么样的一个子集?从前面所学过的知识可以看出,C实现了C++中过程化控制及其他相关功能,而在C++中的C(我称它为“C+”),相对于原来的C还有所加强,引入了重载、内联函数、异常处理等,C++更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等。再提高一点,在C++中,数据封装、类型这些东西已不是什么新鲜事了,需要考虑的是诸如对象粒度的选择、对象接口的设计和继承、组合与继承的使用等问题。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/2137.html
返回顶部