C++自学教材推荐

2024-11-27 16:07:46
推荐回答(5个)
回答1:

1.《C++Primer》
  有“C++的百科全书”,C++程序员人手必备。对语法、语义的描述非常细致和严谨,适合有一定经验的C、C++程序员作为工具书和理论指导书使用,但由于其有一定深度,而没有进阶顺序的章节安排,所以不适合初学者做为教材使用,价格略高。

  难度:★★☆

  质量:★★★★★

  广度:★★★★★

  深度:★★★★

  性价:★★★☆

2.《C++Primer Plus》
  初学C++不错的书,覆盖面较全,章节安排比较合理,由浅入深,也很容易,故因此失去了一些深度。价格比较便宜,但翻译质量略有不足。

  难度:☆

  质量:★★★☆

  广度:★★★★

  深度:★★★

  性价:★★★☆

3.《Essential C++》
  lippman的一部面向初学者的作品。在他写了那么后一本primer之后,为何还要写这么薄这么浅的书呢?其实primer对于初学者来说太笨重了,而这本书却是从不同的方面——C++的本质和组织结构对语言进行阐释,可以帮助初学者对这门语言有一个大致的了解,但知识范围不很全面,不适合系统学习,读者需要一定的编程知识。

  难度:★☆

  质量:★★★★

  广度:★★★☆

  深度:★★★

  性价:★★☆

4.《Effective C++》、《More Effective C++》
  C++真牛人大手笔,之以条款的形式回答了程序员在使用C++时经常提出的“因该注意些什么?”,“因该避免什么?”,“因该怎样去解决?”,“为什么?”等问题。C++程序员想要让自己的水平上更高的档次,此二书必看。价格稍贵,有一定难度,不适合初学者。

  难度:★★★☆

  质量:★★★★★

  广度:★★★

  深度:★★★★★

  性价:★★
5.《C++编程思想》
  除了讲述语言之外,有一定的工程性,从设计者的角度来描述C++怎样应用在实际的项目中。语言描述的全面性欠佳,但还是有一定精度的,尤其是在一些小技巧方面。本书还引入了大量的战例,通过一个个的真实项目来引导你使用C++的思想去思考问题。翻译很差,有一定难度。

  难度:★★☆

  质量:★★★

  广度:★★★☆

  深度:★★★★

  性价:★★★

6.《C++大学教程》
  正如其名,真正的大学教程,非常适合初学者学习,内容由浅入深,对C++各项特性的描述都很到位,章节的安排很有条理性,但深度略显不足,翻译质量不能称之为很好,有一定的疏漏,但对于厚度来讲,价格还算比较便宜。

  难度:★

  质量:★★★☆

  广度:★★★★★

  深度:★★★★

  性价:★★★★☆

7.《C++语言的设计和演化》
  对于热爱C++的朋友来说,确实好书一本,可以当做小说来读,可以放在厕所或床头上以供消遣。本书对语言本身描述很少,并有一定难度。读者需要对C++有一定了解,不适合初学者阅读。
  难度:★★★

  质量:★★★

  广度:★★☆

  深度:★★★★

  性价:★★★

8.《C++程序设计语言》
  C++之父所作,被称之为“C++圣经”。不仅对语言,而且对语言周边的一些如发展史、语义哲学都有比较详细的描述。对语言的描述较为全面,同时包含一部分和程序库相关联的知识,并有一定深度,适合有一定语言基础的初学者,翻译质量不错,价格适中。

  难度:★☆

  质量:★★★★☆

  广度:★★★★☆

  深度:★★★★

  性价:★★★☆

9.《深度探索C++对象模型》
  第一代C++编译器开发主管所写。如果你想成为真正的C++高手,看这本书,他为你讲述了编译器在处理各种语法时在“后台”所做的事。对C++有较深入了解的读者会在读后有恍然大悟之感。候杰翻译,质量相当不错,但内容太深,只适合对C++有较深了解的读者,价格偏贵。

  难度:★★★★☆

  质量:★★★★★

  广度:★★★

  深度:★★★★★

  性价:★★

10.《C++程序设计教程》(钱能-清华版)
  国人所著,国人水平实在有限,深度和广度欠佳,放在这十大里实在是因为再挑不出好书了。可圈可点之处有讲解较为清析、简单,符合中国学生思路,价格便宜。

  难度:☆

  质量:★★★

  广度:★★★☆

  深度:★★★

  性价:★★★★★
所有的书都可以自学,就看你有没有耐力了

回答2:

  推荐看以下两本书籍:
  1、C++编程思想(英文原版叫做Thinking in C++)
  2、C++ Primer
  《c++编程思想》是由Bruce Eckel编写的一本书籍。本书的内容、讲授方法,选用例子和跟随的练习,别具特色。作者Bruce Eckel不是按传统的方法讲解C++的概念和编程方法,而是根据他自己过去学习C++的亲身体会,根据他在多年教学实践中发现的问题,用一些非常简单的例子和简练的叙述,阐明了在学习C++中特别容易混淆的概念。
  本书第1版荣获“软件开发”杂志评选的1996年度最佳图书震撼大奖,中文版自2000年推出以来,经久不衰,获得了读者的充分肯定和高度评价。
  第2版与第1版相比,在章节安排上有以下改变。增加了两章:“对象的创建与使用”和“C++中的C”,前者与“对象导言”实际上是第1版“对象的演化” 一章的彻底重写,增加了近几年面向对象方法和编程方法的最瓣研究与实践的有效成果,后者的添加使不熟悉C的读者可以直接使用本书。删去了四章:“输入输出流介绍”、“多重继承”、“异常处理”和“运行时类型识别”,删去的内容属于C++中较复杂的主题,作者将它们连同C++标准完成后又增加的一些内容放到本书的第2卷中,使得本书的第1卷内容更加集中,供不同程度的读者选择阅读。需要强调的是,第2版的改变不仅体现在这些章节的调整上,更多的改变体现在每一章的字里行间中,包括例子的调整和练习的补充。与众不同的精心选材和认真推敲的叙述使得第2版更趋成熟。
  本书是C++领域一本权威的著作,书中的内容、讲授方法、选用例子和跟随练习既适合课堂教学,又适合读者自学。无论是高等院校计算机及相关专业的学生,还是业界的专业人员,以及广大的计算机爱好者,都可从阅读本书中获得宝贵的收益。
  C++ Primer是久负盛名的C++经典教程引,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。
  本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。
  对C++基本概念和技术全面而且权威的阐述,对现代C++编程风格的强调,使本书成为C++初学者的最佳指南;对于中高级程序员,本书也是不可或缺的参考书。

回答3:

复制来的:

---------------------------------

一些同学问我,如何学好C++,我没有别的办法给你们,唯一的办法就是读书,读大量的书,就可以解决。要把C++作为日常语言,而不是一种程序语言,这样就好办了。

有人又要问我,那么我应该读什么书才好?没有时间怎么办?我只能对你们说,没时间的话,就别学C++了,做你们喜欢做的事。生活中没有
C++,也同样美好。如果你准备学,一定要学好,那么我开个书单,应该问题不是甚大。

首先肯定要读一读Bjarne Stroustrup的The Design and Evolution of C++,了解一下这个语言的历史。接下来就可以看别的书了,但要不停地回头看这本书,看到你不断地学到的新技术是怎么样一点点地被接纳到这个语言中去的。

第一本书因人而异,基础好一些的,可以看Stanley B. Lippman的C++ Primer,这本书非常地巨大,你打星号的部分可以不要看。基础不太好的,可以看Stanley B.Lippman的Essential C++,这本书份量要轻得多,不过四个C++的范型都讲了,而且讲得非常清楚。

第二本应该停止技术层面的东西,静下心来看看Pike和Kernighan的The Practiceof Programming,好好地整理一下,在程序设计中应该有哪些注意的事项。这本非常薄的booklet,可以说是程序员必读的指南。

第三本书,就应该是Bruce Eckel写的、候捷译的Thinking in C++,这本书每过半年我就要重读一遍。可以说每一章都是写得发人深省的,这本书让我感觉到了技术运用的非常高的境界,但是语言非常平实,只要认真地读,即使基础不行,也一定可以懂。我在教课的时候,就是用这本书(面对的学生是零基础)。

要更上一层的话,就要慢一步,先要把握C++设计习惯的良好。这是Scott Meyers的Effective C++和More Effective C++带给我们的无尽收益。我More Effective C++买不起,只好花了10块钱复印装订了一本"线装本",看起来像葵花宝典(;-))。这两本书是真正的经典,作者对C++的纯熟,使得语言的风格读起来简直是如饴甘甜,就像他站在对面在讲课。我手中有这两本书的原版CD,如果有兴趣,可以发E-mail到sjtu@263.net或在饮水思源投条儿给gaobo索要,只要您提供光盘我就给免费烧。如果你已经深刻地理解了Effective C++和More EffectiveC++,那你可以发现,你在众人中已经是鸡群之鹤。可以指导项目运作了,可以编写一切你想做的程序了,可以指出别人看起来不错的代码的大小问题了。如果你能一眼看出有人的代码是对应于"条款27"或"条款M6",那你可真是让本人刮目了。

我已经讲了,如果要写程序,EC++和MEC++的境界已经足以使你自如应付,可是如果你还不满足,想关注一些理论层面的问题,或是想看看实现的代码,你就不应该错过这几本好极了的书。我是说Herb Sutter的Exceptional C++和MoreExceptional C++,这两本书的难度是非常大的,我对每一条的阅读笔记都是十多页。特别是泛型程序设计的部分,这两本书旁征博引,极尽深入探讨之能事,每每看懂一条,都抹汗一次,大感酣畅淋漓;还有侯捷的 STL源码剖析 ,以实际的例子一点点地讲解一个STL是怎么样实现的,我是刚开始读,不发表评论;而Stanley B. Lippman,Cfront的实现者之一,执笔写出Inside the C++ ObjectModel,我只有一个字,就是基本帅呆了。我从中了解了无数的编译器解释源代码的细节,以及记忆体分配的细节,呵呵,这些都知道了,我还怕什么呢?最近得到了另一Cfront实现者、C++标准委员会Koenig的 C++沉思录,看起来非常不错,这里也推荐给大家,但我也没看完,亦无发言权。

最后最后,你们,未来的C++理论家们,可要记住,Bjarne Stroustrup的The C++Programming Language无论如何也应该读个四五遍!这是一切C++的书本的源泉。如果还觉得不够,就向C++标准委员会订购一本C++标准。

一切中国大陆作者的书,一概不要看(包括我的)。一切VC++或讲特定的编译器的书,一概不要看。如果需要补C语言的课,买一本非常小的K&R的The CProgramming Language足矣,其它的书一概不要看。不要先学C,再学C++,而要直接学C++。你不是先学古文,再学白话的,对不对?所以相信我,直接来更容易。

以上文字,皆为原创,本人愿意为每个字负责。

回答4:

阶段 1
《Essential C++》这是一本内容不多但很实用的C++入门书籍,强调快速上手与理解C++编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。你不只学到C++的函数和结构,也会学习到它们的设计目的和基本原理。
《C++ Primer》本书对C++基本概念、技术、以及现代C++编程风格进行了全面而且权威的阐述,是C++初学者的最佳指南;本书可以帮助你编写实用的程序,而无需首先精通每个语言细节。对于中高级程序员,本书也是不可或缺的参考书。
阶段 2
《Effective C++》和《More effective C++》作者是Scott Meyers。你应该熟读它们,并清楚地理解每个项目。该书围绕55条准则,每一条都介绍了一个可让你写出更好的C++程序代码的方法,并以特别设计过的例子详加讨论。
《Exceptional C++(C++编程剖析)》和《More exceptional C++》这两本书中都包含了40个C++编程问题,这些问题会让你磨练自己的技能,最终成为优秀的C++程序员。这些问题是Herb Sutter精心挑选,与ISO/ANSI C++官方标准相一致,帮助程序员在设计、架构和编码过程中保持良好的风格,从而使编写的C++软件更健壮、更高效。
阶段 3
《Inside the C++ object model(深度探索C++对象模型)》本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承,帮助你理解程序的底层实现,以便写出更高效的代码。
《The design and evolution of C++(C++语言的设计与演化)》本书作者也是C++语言的设计者Bjarne Stroustrup,作者在书中综合性地介绍了C++的发展历史,C++中各种重要机制的本质意义和设计背景,这些机制的基本用途和使用方法,讨论了C++所适合的应用领域及其未来的发展前景,既没有忽略关键性的详情,又没有过多地陷入技术细节。
阶段 4
《The C++ standard library(C++标准程序库)》这是标准模板库字典,你可以在本书中找到STL相关的一切知识。本书焦点放在标准模板库、检查容器、迭代器、函数对象和STL算法上。每一个元素都有深刻的呈现,包括其介绍、设计、运用实例、细节解说、陷阱、意想不到的危险,以及相关类别和函数等。
《Effective STL》这是Scott Meyers的第三本C++专著,也是学习STL最权威的书籍。作者对书中的50个指导方针都作了详尽的分析,并配以示例。通过这些规则,C++开发者可以最大限度地使用STL。
《Generic programming and the STL(泛型编程与STL)》本书阐述了泛型程序设计的核心理念:concepts(概念)、modeling(模型)和refinement(改善),并为你展示这些观念如何导出STL的基础概念:iterators(迭代器)、containers(容器)和function objects(函数对象)。按照本书所述,你可以把STL想象成一个由concepts组成的library,你将学习到STL正式结构并理解其强大的优势。
阶段 5
《Exceptional C++ style》作者为Herb Sutter。本书同样提出了40个C++风格相关的问题,对一些至关重要的C++细节和相互关系提出了新的见解,为当今的关键C++编程技术(如泛型编程、STL、异常安全等)提供了新的策略,帮助开发者在开销与功能之间、优雅与可维护性之间、灵活性与过分灵活之间寻找完美的平衡点。
《C++ template》这是一本关于C++模板的完整的参考手册和教程,它强调模板的使用实践,包含了现实世界中的例子。每个C++程序员都应该好好读一读这本书。
《Modern C++ design(现代C++设计)》作者Andrei Alexandrescu为C++程序员打开了一个新的局面。本书提供了一些针对软件设计的前沿方法,如联合设计模式、泛型编程,使程序员可以编写有表现力的、灵活的、高度可重用的代码。
《Thinking in C++(C++编程思想)》C++ 领域权威著作,介绍了C++实用的编程技术和最佳的实践方法。

回答5:

C/C++是偏向于底层的编程语言,要做到精通C/C++,要熟练掌握其内部原理与构造,我向你推荐几本教材,敬请参考。

24种设计模式介绍与6大设计原则.pdf

com原理与应用.pdf

COM技术内幕-微软组件对象模型.pdf

Creating XPCOM Components.pdf

C和指针.pdf

C大学教程(第五版).pdf

Windows程序设计(第5版,珍藏版).pdf

深入解析ATL(第2版).pdf

汇编语言(第3版) .pdf

数据结构与算法分析:C语言描述(原书第2版).pdf