真希望我不是从这本书开始学习C++的 《C++Primer Plus(第五版)中文版》书评_C++Primer Plus书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > > C++Primer Plus > 真希望我不是从这本书开始学习C++的 《C++Primer Plus(第五版)中文版》书评
抛物线 C++Primer Plus 的书评 发表时间:2010-05-05 01:05:42

真希望我不是从这本书开始学习C++的 《C++Primer Plus(第五版)中文版》书评

这本书是我在大二的那个暑假和大三第一个学期时候看的。现在回想起来,这本书看的时间真是长啊。当然这么长是有原因的,这本书有一个特点,每一章都有一些简单的课后题目。题目都是非常简单的,不过真的完成每一个题目需要的代码两也是非常大的。看着本书之前只是上课学过C语言和稍微了解了下80X86汇编。基础非常差,不过还好这本书就是对这样的人写的。我读这本书并不是把他当作普通的书来读的,我对它有一种盲目的崇拜感。因为同学,老师和网络上我认为的牛人都极力推荐这本书。直接的后果就是这本书看的旷日持久。对于课后的每一道题目都不敢有丝毫的懈怠,害怕不做这些题目下一章我就看不懂了。现在想起来让我自己都不敢相信,我竟然真的坚持把这本书看完了。并且敲完了大部分的课后题目需要写的代码。
现在看来这本书的块头也就一般般,不过当时已经算是我看过最厚的书了(小说除外),没有之一。C++是一门非常复杂的语言,它的复杂度体现在,它并不会因为你对语言的深入而减少,反而会越来越觉得复杂。写到这里让我想起了一件事情。我刚看完前面几章的时候有一个同学问我:“C++是怎么样的?”我说:“大部分和C差不多,就是多了个class。”我那时候的理解就是C++ == C with class。随着学习的深入我看到了函数的重载,C++对函数的重命名,模板,继承,多态等等。我发现C++太复杂了,虽然我看完书上的概念和例子,能够自己独立完成课后的练习,并且能对同学吹牛说我精通C++,但是在我的内心深处我知道我只是在C++的汪洋大海的海滩上捡贝壳的小孩子,只是隐隐约约听到大海那雄伟博大的海浪声。
言归正传,我非常清楚的记得这本书封底上写着这样一行话:这本书带领你跨越最危险的沼泽。现在想想这句话相对于这本书是言过其实的。这本书并没有带领我跨越最危险的沼泽,它让我知道了沼泽是怎么样的。只是我比较幸运我活着走出了这片沼泽。
大部分说这本书适合初学者我想是因为书一开始是先讲解C语言。C语言的函数,C语言的变量类型,指针等等。然后才讲C++中的函数,C++中的变量,C++中的指针。这是何苦呢?C++就是C语言的超集啊。把C,C++分开讲让人觉得啰嗦,烦躁。一般人我觉得看到这里就看不下去了,除非明智得跳过C的那一部分。C函数定义,C变量类型不就是和C++一样的吗?为什么要分开来讲,直接可以说C++的语法就是这样的,和C有一些类似而已。并且可以在书的附加阅读中介绍一下C和C++的历史渊源。把C++和C当作两种完全不同的语言可以更好的学习C++,更适合初学者。我们学习C#的时候并不会先讲解下C++中类定义的方式,然后讲C#中类的定义方式。C#就是C#,虽然和C++,Java从语法上来讲有一定的渊源,但是学习它的时候并不需要先介绍这两中语言的语法吧。这是不足一。
这本书还有一个特点,详细。详细到令人发指。记得我刚开始用cout和cin的时候心里非常畅快,因为不再需要一大堆“”和%这些乱七八糟的符号,只需要<<和>>,看上去代码美观优雅多了。不过悲剧就发生了,随着cin和cout一大堆格式化的东西就来了。我开始无限怀念“”和%,scanf和printf。直到现在我用MFC中CString类的Format成员函数还一阵窃喜,高兴自己有这么方便的函数可以使用。可见对我心灵的伤害是多么得大。我知道学习C++,尤其是想系统的学习C++的人,这方面的东西肯定是要了解的,但是我希望不要在号称写给初学者的书上如此详细得讲解这个。这是不足二。
这本书对于编译器底层实现稍微介绍了一些。比如C++编译器是如何实现虚函数,多态和动态绑定的实现原理等。由于我之前学习汇编,对指针的工作方式也非常熟悉所以这倒是帮助了我学习一般人认为C++难度最大的部分。不过对于只学过C直接学习C++或者用这本书学习C++并作第一门计算机语言的人来说可能有点困难。这是不足二点五(也不完全算是不足)。
我给这本书的评价是四星,虽然有我上面说的那些缺点,虽然有那么一点点不适合初学者。但是仍然不能阻止它成为计算机领域一部伟大的书籍。书中对于类的关系,类的继承,重载和多态等重要的C++语法讲解的非常透彻,如果精读本书可以对C++有更深的了解。书中每一个语法点都配有非常精妙的例子代码,每一章的例子都是环环相扣,循序渐进,有时候可以不看一节的文字,单单看一个代码和运行结果就能理解这一节的语法点。可以看出,作者对于例子代码是经过仔细的编排和严格的测试的。
书中所用表达方式和程序的风格让人的让人感觉到作者的踏实。和C++语言界朝着沉醉于奇淫技巧的方向发展。C++社区的日渐松散。作者给C++带来了朴实的春风,让人感觉清爽。
书中的涵盖了C++大部分知识点,并且严格符合C++的标准。计算没有详细讲解的知识,也列出了参考书目和概念。我想这本书应该是那种要让人不停复习,不停翻看的书。
就像这篇文章的题目,我希望我不是从这本书开始学习C++的。我希望有一本书能带我入门,它讲的知识点少一点,粗略一点,浅显一点,例子代码能短一点。如果这样的话,等到我看这本著作的时候能少一份盲目的崇拜,多一份对C++的和作者的尊敬。

展开全文
有用 103 无用 5

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“真希望我不是从这本书开始学习C++的 《C++Primer Plus(第五版)中文版》书评”的回应

準之弗艾伊 2016-04-11 20:59:10

我看的是第6版,全看完,但是没做多少题,现在忘得差不多了。

抛物线 2015-11-23 22:46:26

没有成为大神

红颜世家、 2015-11-18 22:41:35

然而我刚看了12天的C Primer Plus
表示已经快吐了....
不知道楼主现在有没有成为大神....

The_One = Neo 2015-09-15 23:39:13

楼主,你有以下几个问题:
1)不会看书。看任何一本书,你都应该看看前面的前言或者推荐。如果你看过c++ primer plus的前言,你就很容易明白这样一个事实:这本书可以作为初学者入门书籍,也可以作为工具书放在手头以备查阅。这就等于在告诉你,你要把所有知识点都记在脑子里是几乎不可能的。如你所说,cout的格式化输出确实有点恶心。但这些知识很显然不是让你去记住的,而是让你知道有这么个东西,需要的时候查阅一下就好了。
2)你对C++语言的定位不对。C++的确是个面向对象语言,但这并不意味着它就不可以当作面向过程语言去用。这就是为什么在这本书里的前半部分看起来是在讲C语言。这样写书的目的,并非简单告诉读者C++兼容C,而且还要告诉读者一个事情:C++不是严格的面向对象语言。因为从理论上讲,面向对象语言,是不应该有int i = 1;的,而应该是Integer i = Integer(1); int i = 1这种东西,明显是面向过程语言的,为什么C++保留了这样的语法?以为C++要确保代码的运行效率。依照这个原则,我们可以确定 int i = 1肯定会一直存在,而且C++不会引入类似java的垃圾回收。C++的原则就是代码效率、给程序员最大限度自由度和对每个内存的精确控制能力。
3)学习的过程,是一个循序渐进的过程,为什么我们小学一年级要学数学到了大学还要学数学?为什么不直接印一本书把所有数学内容都写进去让学生学?事实上我并不觉得这本书有“太细”的问题,即使真的有,读者应该自己把握,你可以把这本书看好几遍,每一遍的目的不同。因为如果没有任何编程经验的人学C++,是绝对不可能看一遍一本书就学会的。就像学linux一样,你找一本写得很全面的书,并不能把linux学好,你应该先把最简单粗浅的东西都学会,由浅入深。我在看c++ primer plus的时候,第一遍,我没有看模板、容器和结构化输出,没有看模板和容器是因为对当时的我来说太难,没有看结构化输出是因为内容太多太琐碎记不住---事实上我今天都还没有都记住,用的时候还是需要查。
至于虚函数和多态,这是C++的重点和精髓,我不知道这些东西还能怎么往简单和粗浅里讲。

当然了,楼主说的关于这本书太细还是有一定道理的,或许我们应该先看一本非常粗浅简单通俗易懂的书,然后再来看这本。但说句实话,姑且不论那些就用这本书入门的大神们,就算真的应该找本更粗浅的书看,也不能说明c++ primer plus不好,更不能说这本书“把我们带入了沼泽”。如果楼主有这种感觉,只有两种可能:
1)你没学会C++。
2)你在探索比C++本身更多的东西。
对于这两种情况我都不想多说什么,我只是想说,作为一本单纯的讲解C++语言的书,这本书已经把语法规则和一些基本的代码风格、代码原则告诉了读者。所以这本书绝对不是把你带入了沼泽,而是帮你走出了沼泽。
当我看到楼主这篇书评的题目的时候,我的第一反应就是:请你先给我找本更适合做入门的书来

抛物线 2015-06-18 19:34:15

继承、重载、多态这些东确实很显然,这本书也讲解了,面向对象的这些特性是怎能么实现的,我也没说这本书不好,只是说对于入门,这本书太“厚”了。

总把新桃 2015-06-14 16:14:54

面向对象是什么?看这本书的人要是能有一个粗浅的了解的话,应该不会觉得这本书不好了。

---

在我看来,继承、重载、多态——这些东西,基本上是很显然很显然的。

charleyking 2015-04-25 23:33:35

自学中。。。。明年再来说说

Iolop 2015-03-20 19:00:36

我看了快四个月了,确实很详细啊,到了发指的地步,cin,cout这一点就来了一大队的getline,cin.get..........,但是认真的去体会还是很有好处的

infinite2009 2014-10-23 17:00:10

其实我觉得讲得细致还是很有好处的,没有基础的同学初读这种书虽然会受到信息轰炸,但是你至少会知道这里边涉及到哪些机制,可以不是很懂,但是知道有这么个东西,以后学有余力了再回顾的时候就会豁然开朗,如果实在受不了,跳过就好了,其实很多书没必要一个字一个字的死扣,个人见解。

李筱楼 2014-09-29 16:45:43

适当的翻阅并且练习,我就把它当做查找工具书了

万有引力 2014-07-23 08:24:15

正打算买呢。要坚持住

SuperPig 2014-04-23 03:02:23

太他妈细了…几乎写到了每个边边角角~

寒蝉夏虫 2014-04-09 14:58:46

恩,评价很中肯。

mwx19850815 2013-08-31 18:10:54

那是你不会看书好么,不知道精读和粗读

迷惑我的存在 2013-07-20 12:20:15

C++ 和C不一样!

撕鱼 2013-07-08 18:22:57

我只是想知道你希望从哪本开始?可能这本不尽如你意,但有更好的吗?

无名 2013-06-05 19:31:33

真心噩梦……书很好,但讲的太细了……

IdleMind 2013-02-20 17:02:20

好书,只是看的慢,需要时间长,不过比谭浩强的书肯定好的多的多了

Amoeba 2012-12-22 13:58:33

现在就在看,过来瞧瞧大家都是怎么评价的。我看的是英文版,我想说这本书是我看到过的计算机图书里面英语最优美的(在国外上学)。我是刚上完intro课的超级大菜鸟(Java)。这本书讲得非常详细,非常详细,但是我同意楼主的话这书不适合零基础的人入门看。是需要反复看的书。

小Q 2012-11-17 13:33:03

第六版不知到如何,刚学完谭浩强的 C程序设计,正准备学习数据结构与算法 和 C++

抛物线 2012-11-15 20:25:08

正好相反,我觉得这本书很好,我就是通过这本书入门C++的,这本书绝对不是垃圾,请你看看内容再发表评论。现在都有第六版了啊,时间过得真快!

Roloo 2012-11-14 19:32:11

楼主你的标题“真希望我不是从这本书开始学习C++的” 是什么意思啊?你的意思是说这本书很不好吗? 这本书很垃圾? 另外你看的是第五版的吗?现在这本书有第六版的了。不知道怎么样。

楚江课的救赎 2012-10-07 22:02:36

看的想死 重载 空间命名 内存管理 450页了 习题都写了 八天没日没夜的看 猜看了450页 fuck 求突破

谢浩1991 2012-06-23 21:35:11

这本书真的讲得很详细,可能学得比较累吧。我个人的学习方法是,一行一行的把书上的代码手敲一遍,边敲,边看效果,然后思考为什么这样做,这样做的效果是什么,遇到不懂的,再仔细的在书中寻找答案,书中都有很详细的解释。刚开始敲代码会遇到比较多语法错误,积累多了就能够很快改正过来。敲到后面,能够很快看懂程序了。

刘浩 2011-12-03 21:39:28

刚从图书馆把它借回来,我是纯粹自学,希望以后能和楼主交流下。

pauldf 2011-10-24 18:00:26

书的确是好书。我学习C++的入门,是谭浩强的书,翻完了之后感觉没学到什么。之后有幸在街边书店里买到这本。讲的很细致,分析的也透彻。可能真的是因为译者的功力不深厚,读起来偶尔有文字晦涩之感。但是整体上还是很适合于对C++没有概念的入门者。我前1-7章来来回回读了三遍,反复对照谭浩强的入门教材,顿时理解了许多一开始无法透彻理解的功能与细节。C++的强大,在书中也被作者娓娓道来。不可多得。值得反反复复地读。是那种买了不会后悔的计算机书籍。

AchillesKwok 2011-03-09 16:44:23

刚开始的那些都是c的知识,我就没有多看,就直接到后边的类的那一块了。

天下_任我行 2011-01-05 20:19:54

我刚买了,呵呵。。。不过呢,我是要坚持下去的,,,呵呵

Rocky 2010-12-19 00:39:05

这本书我看了60%,还是没坚持住。霸占了2个学期还是换了图书馆。现在对C++有些恐惧了,不过觉得还是要坚持学习下去啊

AirSpuer 2010-05-23 17:53:18

当初我总是以为看完了它,做了课后习题我就会编程