对于有经验的程序员,您对该语言有一些不完整的知识,您会推荐哪些C ++教程?

时间:2009-11-20 12:11:38

标签: c++

在我编程的早期阶段,在我开始专业工作之前,我用C ++写了一小部分饰品/练习应用程序,并且对我知道该语言非常有信心。然后,随着机会的来临,我去做了真正的工作并离开了C / C ++世界。在过去的5年里,我在C#中编写了大量代码,几乎没有遇到过C / C ++语言。现在,花了一些时间在SO和teh interwebs上,我发现我认为我所知道的“C ++”实际上是C和C ++之间的混合,我对该语言更复杂的工作方式的知识存在很大差距。与此同时,我也意识到我对这种语言很感兴趣,并希望更多地学习它。

谷歌搜索“C ++教程”揭示了大量的教程,但它们都是针对完整的初学者,花了很多时间来解释我已经熟悉的基础知识。我不认为会有任何教程完全适合我,但是有些教程至少是由经验丰富的程序员编写的,而不是花费大量时间在琐碎的事情上,并讨论更精细的点。语言和编译器?

8 个答案:

答案 0 :(得分:17)

C ++太复杂了,无法通过教程学习,你只能用这种方式划过表面。特别是STL(以及一般模板)的高级用法通常超出了在线教程的范围。

因此,我推荐书籍:Stroustrup的“The C ++ Programming Language”,Scott Meyer的“Effective C ++”,“More Effective C ++”和“Effective STL”。

如果您对已经知道该部分有信心,可以跳过Stroustrup的前几章,但这是了解该语言细节的最佳书籍。每个有抱负的C ++程序员都应该有一条法律来阅读至少我提到的前两本Meyer的书。

一旦完成了这项工作,请查看Andrei Alexandrescu撰写的“现代C ++设计”,了解可以使用哪些模板。

更新:为了应对8年后的失败(...),请注意The Definite C++ Books List。我上面提到的个人建议是正确的,但该列表是由社区驱动的。

答案 1 :(得分:9)

C ++是一种非常古老的语言,所以有很多好书可供选择。我建议阅读这些书籍,而不是搜索网站和博客。我的个人经历说,在一个地方找到很多好文章比较困难,大多数好文章都已经出版了。

关于网站:

博士。 Dobb的网站和期刊有很多好文章。

书籍: 有效的C ++

特殊C ++

C ++对象模型

Bjarne Stroustrup

超越C ++标准库

答案 2 :(得分:5)

1.C ++对象模型对于专业人士来说是一本很好的书。

2. bjarne stroustrup对C ++的设计和演变为您提供深入的见解。

3.Scott Meyers的Effective C ++系列也很不错。

答案 3 :(得分:5)

我建议C++ FAQ Lite,而不是补充。它包含从基本内容到真正模糊C ++功能的信息,以及编写优秀C ++的许多技巧,并且在一些愚蠢的模板事物或任何不符合我期望的事情时帮助了我不止一次。

答案 4 :(得分:4)

你已经得到了许多好的建议,但似乎没有一个包含真正为你的情况编写的那个。 Accelerated C ++ 是为已经了解编程基础知识的人编写的,只是想学习如何在C ++中编写

答案 5 :(得分:2)

语言的运作?您认为哪些领域值得改进?我从你的问题中提取它时遇到了一些麻烦。

我经常留在桌面上并经常查看的一本书是Lippman等人的C ++ Primer,第4版,ISBN 0-201-72148-1。这不是教程,这是一个参考。每当您对语言本身有疑问时,您都可以在这里找到简短而准确的答案。

如果您想要专门针对经验丰富的C程序员的教程,请参阅Bruce Eckel的C ++思考。可在作者网站上免费下载,也可通过Prentice Hall打印。

在某些时候你会学到许多你可以做的事情,从那以后,你应该学会不做什么。这是一个漫长而痛苦的部分,我没有精确的收件人,但接受我的同情。你越深入涉及复杂的东西,由于语言特征之间的冲突,你更有可能在某些时候咬你。我建议看一下Matthew Wilson的Imperfect C ++,Sutter和Alexandrescu的C ++编码标准。

答案 6 :(得分:0)

你可能想跳过你已经知道的东西,然后继续努力学习更多有趣的东西。我假设你已经对语言以及它的语法,方法,类等了解了很多。

从哪里开始?那么,关于这门语言的书籍和论文非常好。我可以推荐很多关于该语言的书籍,但您可以使用stackoverflow search找到它们。

我只能告诉你你已经知道的事情。你找不到涵盖这一切的书。您将不得不浏览许多书籍以获得您想要的东西。随机推荐一本书,浏览它可以跳过你认识的东西并尝试将它们放在一起。尝试通过编写一些代码来更好地理解新知识。直到你完全理解它为止。

Here是高级C程序员的简短教程,可以刷新您对该语言的记忆。

答案 7 :(得分:0)

Lippman的Essential C ++是一本小而精彩的书。