C语言是一种古老而又经久不衰的计算机程序设计语言,大约诞生于上个世纪60年代。由于它的设计有很多优点,多年以来深受广大程序设计人员的喜爱,并逐渐 淘汰了很多其它程序设计语言。我们平时使用的大多数软件都是用C语言开发的。
很多后来出现的一些语言也沿用了很多它的东西。C语言的编程方式是一种称为面向过程的开发方式。也就是说,解决问题的时候,程序员需要思考计算机应该如何一步一步完成这个问题,然后将相应过程转化为代码。
当软件变得越来越复杂,代码越来越长的时候,一个人的脑力有限,用面向过程的方法很难开发,往往写着后面的,就忘了前面写 了什么了。而且复杂软件往往需要很多人协同开发,更加大了开发难度。一种称为面向对象的软件开发方法应运而生。面向对象的思想用几句话很难说清楚。
国内的计算机教材在讲到这里的时候往往也都说不清楚什么叫面向对象。这个词语也许只能意会不能言传吧。需要开发过一些相关软件才能领会。这里还是不具体说了吧。 C语言不是面向对象的,而程序员又离不开C语言,因此有人在C语言的基础上添加了面向对象的功能,就是C++.同时,C++修改了C语言中一些不方便的规定,使C语言用起来更方便了。
这里需要注意两点:
1.谭浩强那本书后面用了几张篇幅简要介绍了C++,但是他讲的C++只是上面提到的修改C语言不方便的规定,涉及到面向对象的内容一点没有。
2.C++是在C语言的基础上发展来的,但是并不是C++比C语言高级,两者的编程思想不一样,应用的领域也不一样。在各自的领域,谁也不能替代谁。而且,windows操作系统出现以后,开发windows平台的图形界面程序成为一大难题。用C语言虽然能开发,但是程序员要花费很大的精力处理图形界面。
同时,windows平台图形界面的程序又都有很多相似点。为了解放程序员,让他们把精力主要放在程序功能上,而不是放在图形界面上,microsoft公 司推出了visual系列软件开发环境,包括为C++程序员提供的Visual C++.程序员能用C++语言在其上开发图形界面的软件。微软随Visual C++提供了很多用于显示Windows界面的库函数。可以说Visual C++就是C++加上windows图形界面。
那是不是想学C++和C语言的话,只要去学Visual C++就行了呢?大错特错!市面上任何一本Visual C++教材都是假设用户已经掌握了C++语言,重点在讲和Windows程序设计相关的东西,而且往往都要讲MFC(“还有:Qt wxWindow WTL gtk vcf fltk notus .... ”;“QT和wxWindows都是很好的跨平台GUI库,用Dev-C++编译。。”;“如果是在windows下,Visual C++和C++ builder都提供了成熟的图形界面类库;
如果是在linux下,KDE和GNOME也都提供了图形开发库;”——2004年)。没有C++基础,根本无法理解MFC的任何东西。
很多人急功近利,觉得花费半年甚至一年时间学习C++.连个图形界面的程序都开发不出来,太不划算。这种想法也是错误的。世界上的软件只有一部分具有图形界面,运行在Windows平台,需要用Visual C++开发。学好了C++,即使不学Visual C++,也是大有作为的。
还有很多人,要学C++或者C语言,先整个Visual C++装上。其实这是一种误区。Visual C++操作复杂,而且帮助开发者做了很多事情。对于初学者来说,操作复杂的话要花很多时间用在掌握Visual C++的用法上。帮开发者做的那些事情,往往是初学者需要了解的,自己亲手做一下,对学习更有好处。
再说了,大家装的往往都是非法版本,这种事情不是人家不追究就万事大吉了。自己良心有愧啊。但是,个人见解:如果我们的很多编译软件都是需要收费,并且具有唯一的锁定码,那可能这样的一些编译软件就没办法普及,对于商家来说可能就不能创造那么巨大的用户群体,产生不了那么多的网络资源促进技术的学习(这就是开源软件的好处吧……)。所以像微软等大公司的编译软件,虽然盗版,但是对以部分使用盗版的群体来说是一种潜在的普及和宣传。想想visual C++6.0的普及程度也许大家就可以理解了。
本人建议C语言和C++的初学者,上机练习最好用自己喜欢的代码编辑器写好后用GCC编译,对以后的深入学习大有好处。还是那句话,理论加实践才是最好的老师。