您的位置:首页 > 编程语言 > C语言/C++

浅谈编程能力的培养与提高——学习C++的一些建议1

2009-07-06 13:45 761 查看
从什么语言入门并不重要,但是一个优秀的程序员至少应该牢牢地掌握住一门语言,最好能够达到“精通”的地步!C++语言具有广大的用户群,拥有丰富的学习资源,更有着广阔的应用前景,因此很多程序设计爱好者都希望能够把C++学好。但是C++显然要比C或者BASIC等语言复杂许多,很多人觉得学好C++实在不容易。在此我想为那些希望学好C++的读者提出一些建议和意见。
首先我们应该对C++语言有一些定性的认识,这样做能够让我们从它与其他一些语言的联系中获得一些提点。C++是由C语言发展而来,它比C语言更加丰富更加复杂,对于那些有着一定C语言基础的读者,很多前辈都建议他们把把C++当成一门新的语言来学习,最好认为C++和C没啥关系!我却并不这样建议读者,因为两者本身并不冲突。如果你没有C语言基础,你完全不必担心,因为两者没啥关系,所以你完全没必要为了学C++而先把C学一遍。但是如果你有一定C语言基础,那么恭喜你,从C向C++过渡你将事半功倍。很多人认为C++比Java复杂的地方在于它保留了指针,很多初学者一看到指针就一筹莫展,要知道C++的一个强大之处就在于它拥有指针。如果你有一定的C语言基础,那么无疑学习C++时,指针对你来说将不再神秘。你还可以从C语言那里继承过来许多东西,它们在C++中同样适用。拜读过布鲁斯艾柯的名作《Thinking In C++:卷1》的人应该知道,这本书正是选择了一种从C向C++过渡的讲法来帮助读者学习C++的。这本书里并没有劈头盖脸的向读者灌输类的概念,而是选择读者所熟悉的C中的结构体来做铺垫,再转而过渡到C++中的类。总之如果你没有C的基础,无需担心;如果你有C的基础,那就更好了!
尽管我们认为有一定的C语言基础,再学习C++会容易些。但也要避免一些混淆。千万不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样。一定要参考专业的C++书籍而不是靠自己的臆测。这也是我需要提醒读者的。
C++是一种面向对象的语言,这是它与C的最大不同。尽管它还很保守,因为它保留了许多面向过程的痕迹,相对于Java而言,它并不纯粹。但面向对象的核心概念和思想在C++中仍然得到体现,例如继承、多态和类等概念。如果你对面向对象思想有所了解,那么学习C++会更容易上手。如果你希望利用C++来学习面向对象思想,那可能不是好的选择。当然,你可以仅仅为了学习C++而学,只是把面向对象思想的体现当作是C++的某种特殊语法来对待,那样的话你就不会被那些复杂的概念所搞晕。当你对C++认识得比较深刻之后,再接触一些面向对象的理念或许更好。
尽管很多人仍然大力的推荐你学习C++,也会有人告诉你“C++语言不行了,应该学Java或者Python”,请一定要明确没有什么语言行不行的,只有你自己学得好不好。如果你学得似懂非懂,那就是让你学最新的语言也是白费。如果你的C++学得很牛,那你这块金子就必然有发光的时候。还有人会疑惑学C++有前途吗?或者由于到底是学这个好呢还是那个好呢?这些都是阻碍你静下心来好好学习的思想关卡。学哪个并不重要,才好才是硬道理。任何好的前途也都是以扎实深厚的知识为基础的,如果你总是想着学哪个,或者学了有没有用,那么你当然永远都学不好,学不好自然谈不上有什么前途可言。你要做的只是踏踏实实学习的人,而不是只观望不学习的人,更不是只学习而不坚持的人。
C++中有很多非常有特点的技术,例如STL、模板、异常等,不要被它们蒙住,更不要被它们吓住,这些东西都是为了让编程更容易而设计的。这些知识并不难,难的是长期坚持实践和不遗余力的博览群书。一方面我要告诉读者的是标准C++非常重要,在过去的很长一段时间里,中国的程序员并不太注意标准C++,但可喜的是这种状况正逐渐得到改善。很多人不明白标准C++和C++有什么区别,甚至搞不清楚标准C++到底是什么。任何东西都应该有个标准,不然东说动,西说西,到底应该以谁为准呢?C++语言也有标准,C++标准是由国际标准化组织规定的,是在全世界范围内被接受和认可的。标准化是大势所趋,是人心所向,是不可逆转的历史潮流。很多读者会发现,在TC上编写的C++程序移植到Visual C++ 6.0上可能编译报错,在Visual C++ 6.0上编译的程序在移植到DEV C++上有可能报错,甚至是移植到Visual C++ 2005上仍然报错。这就是没有标准化的危害。总所周知,Visual C++ 6.0对标准C++支持较差,而GCC或者Visual C++ 2005等则更符合标准C++的要求。可见标准化是非常重要的,更是语言发展的方向。STL、模板和异常等都是在C++标准中有严格规定的。要学就应该学标准C++,而非山寨C++。
另一方面,千万不要被TC、VC、GCC、BCB等词汇所迷惑,它们都是集成开发环境,而我们要学的是一门语言。掌握了一种开发环境的使用跟学会一门语言是两回事,会用Visual C++,并不能说明你就掌握了C++,所以也不要被集成开发环境的摇篮宠坏了,应该提早断奶,摆脱对开发环境的依赖。学好了C++语言本身,到任何开发环境下都能从容应对。

未完,待续...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: