免费源代码下载整理 - 云代码空间
—— 每天更新整理各种PHP、JSP、ASP源代码,敬请关注我的微博 http://weibo.com/freecodedownload
这是非常适合初学者的一本书,学习C++之前就知道这本书堪称是C++圣经,读了之后发现真的是名不虚传。
我以前看过的一些国内的C++教科书,都是使用基于字符数组指针和动态内存管理的程序设计技术来讲的,感觉经常会陷入到一些程序细节中,没看几章就会觉得有很强的挫败感而导致不想继续了,但是由于英文不好,一直对看这本书没有太大信心,经过很多人的推荐,最终还是鼓起勇气买了一本来看,很庆幸没有自己想象中的那么难。
我觉得这本书的特别之处在于两点,一是引入标准库,让学习编写的过程变得简单很多,而且可以顺便学习一下全新的C++11标准;二是这本书在边栏设置了一些图标,用来对基础内容(核心)、高级主题(可跳过或扫一眼)和复杂概念(仔细彻底理解)加以区别,个人感觉可以引导不同程度的人更有效率的读这本书。
要说缺点的话,个人觉得最大缺点还是它是英文版,读起来很慢,英文不好是个硬伤,不过听说7月份将要出第五版的中文版了,很是期待~~
《C++编程思考》第2版与第1版相比,在章节安排上有以下改变。增加了两章:“对象的创建与使用”和“C++中的C”,前者与“对象导言”实际上是第1版“对象的演化”一章的彻底重写,增加了近几年面向对象方法和编程方法的最瓣研究与实践的有效成果,后者的添加使不熟悉C的读者可以直接使用这本书。删去了四章:“输入输出流介绍”、“多重继承”、“异常处理”和“运行时类型识别”,删去的内容属于C++中较复杂的主题,作者将它们连同C++标准完成后又增加的一些内容放到第2卷中,使得第1卷的内容更加集中,供不同程度的读者选择阅读。需要强调的是,第2版的改变不仅体现在这些章节的调整上,更多的改变体现在每一章的字里行间中,包括例子的调整和练习的补充。与众不同的精心选材和认真推敲的叙述使得第2版更趋成熟。
这本书是C++领域的一本权威著作,书中的内容、讲授方法、选用例子和跟随练习既适合课堂教学,又适合读者自学。
Effective C++ 非常经典的C++书籍,基本上学C++的人没有不知道这本书的。书中介绍了55个准则,每一条准则描述一个编写出更好的C++的方式。
书是一年半以前买的,那时刚刚学了一个学期C++(再之前一个学期学了C),算是把基本语法学完了,封装继承多态等面向对象知识也都有所了解。不过那时买来这本书一读,还是觉得读起来太吃力了,就算勉强读完所能理解的也不多。所以看了1/5就束之高阁了。之后虽然几次想再拿出来读完,却都因为种种原因耽搁了。最近趁着寒假,终于把这么经典好书通读了一遍。
读完之后第一感觉就是:难!C++真难!以前的自己真是太浅薄了(虽然也从没认为自己多有内涵),对C++的理解真是太浅了(虽然也从没认为自己真的掌握好了C++)。书中很多观点都令我耳目一新:原来C++可以这么用的;而对C++的博大精深也有了更深刻了认识。
之前的一年基本上都在用C#这门语言,C++很少用到,有些生疏了。读书的时候也常常把书中提到的C++的一些用法和C#相比较。比较之后发现,C#不愧是C++的后辈,继承了C++的优良传统,而又新增了很多特性。而这些新增的特性如果想在C++中实现,很是要费一番功夫。
在C/C++中最令人痛苦/欣赏的就是指针了。用得好,代码简洁,程序执行效率高;用得不好,不仅容易出错,各种各样的用法也令人头痛不已。与指针相伴随的是资源管理的问题,一个new一个delete,就算是资深的程序员也不敢说自己的代码完全不会出问题。于是人们发明了智能指针,大大简化了这一方面的问题。而C#在这方面就进不了不少,垃圾回收机制解决了资源管理容易出错和内存泄漏等问题。程序员只管完成功能就行,麻烦的事情交给系统和语言机制来解决。当然事情都有两面性,系统提供的方案是普遍适用的,但在某些特殊领域,还是人工写代码来控制效率高一些。
有面向对象,必然有类的继承体系。C++ 中不支持“接口”(Interface)这个东西,于是人们用“类”(Class)来模拟。在融入virtual关键字以及一些相对(和C#直接的Interface关键字相比)复杂的技术之后,终于用类基本实现了接口的特性。读到这里不禁赞叹前人的智慧。
书中还提到了TR1和BOOST等程序库,他们和STL一起,大大的扩展了C++语言。我觉得,函数库的增加,使C++一下子变得比C优越了很多。
另外书中还有很多很多的一下技巧和提示,虽然由于经验不足还是有很多不能完全理解(尤其是泛型那里),但读完之后还是觉得对C++的理解深刻了很多。
《C++程序设计语言》这书鼎鼎大名,C++语言之父亲自写出,无数牛人推荐,如雷贯耳。
虽然是众人推荐的入门书籍,但是也有人持不同建议,加之又贵,所以直到最近才有机会一睹芳容。
曾看到有人评论对本书推崇之至,“它不是那种让你看了会不断窃喜的小书,需要用心体会,反复咀嚼。在阅读过程中,请特别留心Bjarne先生强调了什么,又对什么一语带过。”
我挺反感对一种东西吹捧上天,这种东西一旦真正了解,总是让你后悔白浪费时间。所以上面说的评语,让我最开始看时,总带着怀疑批判的眼光。没想到,作者直接在书里写明,程序员对于各种技术要有着“健康的怀疑精神”,真是一语说中我心。
于是,花了一个多月的时间,终于把这本书完整的看了一遍,其中最后关于设计的三章还看了两遍。看完之后,只想对那些把本书推荐给初学者的人说一句:“你们看过这本书了吗?给初学者推荐,这不是搞笑嘛!”
真的是如此,本书把C++的各个方面完完整整的写了一遍,更可贵的是,对语言细节和技术做了点评和建议。这些建议在我看来,是本书价值之中很重要的一点。难怪有人说,Bjarne不是很看重那些effectiveXXX之类的书,那些书的大部分不过是拾他牙慧而已。诚如所言,真要是把Bjarne的建议用心体会,很多问题已经解决,部分问题就直接绕过或避免了。
本书赞誉甚众,也无需我再美言。不如让我以一个初级程序员的眼光来说明为什么这本书不适合初学者。
首先,书太厚了,初学者需要的是讲解C++的核心语法和简单库元素的小书,本书好像茫茫大海,初学者在里面找不到C++的核心,反倒被各种繁复语法迷花了眼,更可能是学一点忘一点,看到最后没耐性放弃了。
其次,初学者有可能没有编程经验,作者在书中的建议你很难体会到原因,作者不建议使用的技术,你也不知道其缺点。很多精华知识成了过眼云烟,太浪费本书的价值和读者的时间了。
第三,初学者对很多知识很难深入下去,对作者穿插在书中各处的编程技术发现不了。一例证明之,我在读标准库时,已经耐心磨尽,准备只是随便翻翻算了,没想到作者居然给了不少标准库实现的代码和点评,竟然把课堂搬到实践现场了,真是酒好也怕巷子深啊。甚至快到结束时,我又从21章输入输出流的哨位那一节,收获了一个和这章知识无关的启发,真是处处知识点啊。
总之,初学者看这个书,劳“命”伤财,实在不合适。万勿上了高手或是装高手的当,等略有些储备再看此书也不迟,而且收获更大。