如何开始学C++

来源:互联网 发布:数据存储器 编辑:程序博客网 时间:2024/05/06 08:22

自学C++,几乎一大半人会说红宝书《C++ primer》,剩下的人中又有一大半会说《C++ 编程思想》

嗯,从我个人学习角度看,初学者特别是如果有C经验者,看《C++ primer》并不合适,说实话,我更愿意将它作为参考手册。

因为其特点就是举例丰富,论述详尽,内容厚实,看了后面忘了前面。真的太厚了,初学者往往淹没在其中,没办法抓住要点。

 

《C++编程思想》是分3卷,好像总共是两册。卷一不太清楚,先接触的是卷二,卷三(反正就是下册),卷二有点难,绝对不适合初学者。卷一接触的时候对C++已经比较了解了(看过Scott的三本经典著作2遍,更早的其他的一些启蒙书,较难的Modern C++ Design,还包括下面要讲的一些书),所以基本只是大概了解了一番,感觉和C++老大写的那本书比较接近,不过我看着C++老大写的那本书还比较好,内容不太多,有很多可以略过,但是对一些为什么不允许某个语法或者要创造这么个语法,等等之类的问题有很好的诠释。所以相对来说那本书,我也不太推荐。

 

如果纯粹是初学者,一点编程的经验也没有,那么我建议不要自学,还是先参加正式的课堂学习吧。

 

如果你有编程基础,比如是C(如果是其他的面向对象编程经验的,那就酌情略过),那么可以先找一本最薄的C++书看一遍,一般会涉及以下内容:

1. 函数重载和运算符重载   我想只要有程序概念的,对这种东西很好理解。(Ps,但实际不太好恰当的应用)

2. 一个带类的C,主要就是访问修饰符,public,private,protected。一看就明白。

3. 类的标准函数,构造函数,析构函数,拷贝构造函数和复制构造函数,主要是它们的作用和什么情况下需要自己写这些标准函数,这是一个难点,即使有其他面向对象语言经验的人,也往往会在这里卡一下。不过不妨暂时轻松走过好了,反正总有一天会重重摔在这里,重新审视这里的内容的,当然能那是你就又上一个档次了。

4. 接下来就是类的继承,首先是继承属性,public,private,protected,简单,就是名词解释。其次是单继承,也很简单,记住哪些数据可以继承,哪些函数可以继承,哪些函数不但可以继承而且可以重定义(这样的函数实际上应该叫接口)。做到这些就够了。

5. 最后,就是泛型编程了,模板。特点是句法复杂,名词特多。但是你只要能够认出怎样的代码是模板,通常标记是template<>,这样就够了,如果你能够区分实例化,特化,等等这些概念,那么说明你的理解力相当高,应该做自然科学比较好。

6. 此外,还有一些杂项,比如输入输出,只要会cout,cin,不需要会格式输出。文件输入输出也一样。名字空间的内容,实际跟类的有点相似,如果你对作用域的概念比较清楚的话,相信这些都是直接走个过场就可以马上理解了。

 

 

ok,在你了解上面的基础知识之后,(一般说来,不会超过21天)。如果还有不懂的,也不管了。接下来我要正式推荐一本书,薄薄的一本书《C++必知必会》。作者按条款列举了一些常见的内容,也是我们看完一边《C++primer》却完全没有印象的内容,而这些内容,恰恰是在C++编程中最经常用到的知识点,或者最常误解的内容。这本书有几个亮点:

1. 薄

2. 给出了C++查找机制,完整的。特别清楚,相信看完后说还不理解的,我只能拜倒。

3. 给出了模板的概念,他对模板几乎花了一半的篇幅,所以绝对详细,但不啰嗦。看完后,我相信你都有能力看《Modern C++ Design》

4. 给出了一些常见涉及模式,不是主要内容,初学可略过。

如果在阅读过程中有哪个不懂,这是可以参考红宝书,根据目录直接索引到具体内容,或者直接online search。

 

上面所讲的内容不涉及STL。如果需要学习STL,建议还是先学完数据结构,然后学完上面的C++基础,再开始看,随便找本书,但不要《STL源码剖析》,牛都没见过,就庖丁解牛,就有点不太切实际了。薄一点的书就行,或者直接参考手册。

 

 

学完基础篇,可以考虑Effective 三大本,有些内容过时了,但是大部分绝对还是真理。看过此书,对很多代码就会有知其所以然的觉悟了。剩下的我推荐C++老大写的那本书(不是参考手册的那本),编程思想第二卷,《C++编程规范》,有空的时候看看。不要急于写超过1000行的代码,多看一些源码,多写一些简短的只是用来测试学到的技术的代码段,这样就会不知不觉中提高。

 

最后再强调一次,初学不宜《c++ primer》,除非你是上课。想学基础,找薄的书+《C++必知必会》。进一步提高,多看C++编程思想方面的书,不要急于写大段的代码,基本都是错误,这与初学时不同,初学时还是建议多练练小程序。

 

个人观点。人各有志,求同存异。

 

原创粉丝点击