学习编程
学习编程包含以下几个重要方面:
了解语言的句型
晓得这些特点可以使用和何时使用
写出可读性好的代码
编译器可以理解,并且下一个人是否可以阅读呢?
在一个更高层次设计结构良好的程序
为了学习一门语言,一般我们可以找到叫《X语言编程》的书。这也产生了一个潜规则:当你创建一门严肃的语言的时侯,你须要编撰这样一本书。学习语言有点像学习习作,但这并不意味着你还能忽然弄成一个知名诗歌画家!
对于C++,这儿有几本相关的书:
《C程序设计语言》(BrianW.Kernighan,DenisM.Ritchie,TCPL)。这本书不是关于C++的,不过所有与C有关的东西都和C++有关。诸如,这本书附送的事例都可以看作C++的事例美国linux主机,只是不是真正的C,由于C++比C的编译器要求愈加严格。而且大部份编撰良好的C程序都可以在C++下编译通过,TCPL是一本小书,但是被誉为X语言编程中最好的书籍。书中每一页都饱含智慧。
《Cprimerplus》几乎包含C的所以特点,全书共17章。第1、2章学习C语言编程所需的预备知识。第3到15章介绍了C语言的相关知识,包括数据类型、格式化输入输出、运算符、表达式、流程控制句子、函数、数组和表针、字符串操作、内存管理、位操作等等,知识内容都针对C99标准;另外,第10章加强了对表针的讨论,第12章引入了动态显存分配的概念,这种内容愈加适宜读者的需求。第16章和第17章讨论了C预处理器和C库函数、高级数据表示(数据结构)方面的内容。附表给出了各章前面备考题、编程练习的答案和丰富的C编程参考资料。
《C++程序设计语言》(BjarneStroustrup),一本杰出的书,书中的每一页同样饱含智慧。这本书有1400页。VerityStob对这本书有热烈的评论。在TCPL中,我们读到的是“C不是一个大的语言,因而也不须要一本短篇大论的书来讲解”,并且讲解C++的书却有1400页。虽然这本书很难一页一页地读下去(不过,我几乎读过了书中的每一页),而且我建议每位人都拥一本。它讲解了C++中的每一个方面,而且讲解得十分不错。有这本书可以作为C++的参考,你的编程生涯会获益良多。
《C++primerplus》全书分17章和10个附表,分别介绍了C++程序的运行方法、基本数据类型、复合数据类型、循环和关系表达式、分支句子和逻辑操作符、函数重载和函数模板、内存模型和名称空间、类的设计和使用、多态、虚函数、动态显存分配、继承、代码重用、友元、异常处理技术、string类和标准模板库、输入/输出等内容。本书针对C++初学者,从C语言基础知识开始介绍,之后在此基础上详尽论述C++新增的特点,因而不要求读者有较多C语言方面的背景知识。本书可作为高等高校C++课程的教材,也可供初学者自学C++时使用。
C++除了是一门语言,也是指一个函数库。在《C++程序设计语言》中也讲解了C++标准库,为了全面了解C++标准库,我推荐:
《C++标准程序库:自修教程与参考指南》(NikolaiJosuttis),和《C++程序设计语言》一样,这也是一本大部头的书。并且这本书涵括了C++标准库的每一个方面(同时,也被叫做C++标准模版库),第二版中囊括了C++2011标准。
假如你之前从事中级语言例如python,perl或则java,C和C++可能让人生畏。不像其他语言,C/C++特别接近硬件。这也有一个优点,可以充分借助硬件优势linux 内核,但也让你须要面对现实细节。SimonTatham(作为Putty的开发者和编撰《缺失代码怪味》的作者而著名,尽管他如今使用C开发)写了一篇特别棒的文档:《TheDescenttoC》,这会增加你的学习难度,甚至经验丰富的C开发者也可能受惠一二。
假如你读了前面三本书和链接,你已然可以熟练把握C++了,而且善用C++标准库。不过linux c开发书籍推荐,你还没有学习怎么使用和何时适宜使用C++的特点。C++作为一门强悍的语言,有句话说:“使用C,你错事可能砸到自己的脚,而使用C++,你错事可能造成你整条腿都废了“,这说的都是真的。
另外,C++强悍之处在于你可以继续使用你之前语言的开发方法。“我可以在任何语言中写编撰FORTRAN代码”。不过这样不利于你成为一个更好的开发者。
用好C++
这儿也有三本书,作者都是ScottMeyers,这将大大简化一个立志于C++开发的人的生活:
《EffectiveC++》——列举了一些常见错误,有用的特点和编程中须要注意的事项。近来更新于2005年。
《MoreEffectiveC++》——和前面一样,不过述说得更多一些,同样值得你去阅读。
《EffectiveSTL》——最后更新于2001年,和《EffectiveC++》一样,不过关注于C++标准库。
假如你只想读其中一本,选择《EffectiveC++》,假如你想选择两本,再选择《EffectiveSTL》。
须要注意的是,Scott正在打算一本新的书,全面覆盖了新的C++2014标准(这可以看着是对C++2011标准的改进,但是当前大多数编译器早已支持了C++2014)。一旦这本书出版,你应该第一时间购进,本书的预览部份早已看上去相当棒了。
更新:许多读者都推荐了StanleyLippman的《C++Primer》,我不了解这本书,不过它更新了C++2011标准而且收到了好多称赞,请告诉我你的观点。
编撰良好的代码
下边提及的书都讨论了代码风格,假如编撰代码,不过它们虽然范围更广。指导你怎么编撰可读性好的代码的书有:
《程序设计实践》,(BrianW.Kernighan,RobPike,TPoP),这不是一本特定于C++的书,不过谈论了许多关于怎么组织代码,何时优化代码,何时不做优化,假如调试和怎样编撰代码防止调试等等,我认为每位开发组织都应当有这样一本书。
《Linux内核代码规范》(LinusTorvalds)linux c开发书籍推荐,这也不是一本关于C++的书,并且在第4节“命名”,第六节“函数”和第八节“注释”中,我们都可以学习到许多。
每位想要提升其代码的程序员最好认真阅览《程序设计实践》的每一页。
设计大规模的代码
我只晓得一本书述说了这一点,我的一些思想产生也有赖于它。
《Large-ScaleC++SoftwareDesign》(JohnLakos),虽然本书有些年头,上面的一些建议用于指导曾经为缺少储存而且性能低下的机器开发程序的人们,从这本书我学习了怎样将一个复杂系统拆解为多个有意义的模块。非常须要注意的是在循环中处理依赖代码。这些额外出现的细节,致使你的代码几乎不能测试,由于每位模块都十分依赖其他模块。
最后,祝学习C++的童鞋进步!
本文仅供学习,不具有任何商业性质!侵删!