C 是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
作为一个Java工程师,学习C 的门槛并不算低,C从来没有虚拟机,没有垃圾回收,在Java里不需要考虑的各种技术细节,在C++里都需要关心和处理,比如手动分配内存。
如果是C 工程师转型做Java,则是明显的降维打击,你再也不需要考虑内存的管理,不需要深入底层去做编程,仅仅把它们当成系统自带的类库就好了。今天我们就来推荐几本C的经典书籍吧。
C++系列书单
C++ Primer Plus
C 是在C语言基础上开发的一种集面向对象编程、通用编程和传统的过程化编程于一体的编程语言,是C语言的超集。《C Primer Plus(第6版)(中文版)》是根据2003年的ISO/ANSI C++标准编写的。
通过大量短小精悍的程序详细而全面地阐述了C 的基本概念和技术。全书分为18章和10个附录,分别介绍了C程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑操作符、函数重载和函数模板、内存模型和名称空间、类的设计和使用、多态、虚函数、动态内存分配、继承、代码重用、友元、异常处理技术、string类和标准模板库、输入/输出等内容。
本书针对C 初学者,从C语言基础知识开始介绍,然后在此基础上详细阐述C新增的特性,因此不要求读者有较多C语言方面的背景知识。本书可以作为高等院校C 课程的教材,也可以供初学者自学C时使用。
Stephen Prata,在美国加州肯特菲尔得的马林学院教授天文、物理和计算机科学。他毕业于加州理工学院,在美国加州大学伯克利分校获得博士学位。他单独或与他人合作编写的编程图书有十多本,其中《New C Primer Plus》获得了计算机出版联合会1990年度“How-to”计算机图书奖,《C++ Primer Plus》获得了计算机出版联合会1991年度“How-to”计算机图书奖提名。
深度探索C++对象模型
如果你是一位C++程序员,渴望对于底层知识获得一个完整的了解,那么本书正适合你。
作者Lippman参与设计了全世界套C 编译程序cfront,这本书就是一位伟大的C编译程序设计者向你阐述他如何处理各种explicit(明确出现于C 程序代码中)和implicit(隐藏于程序代码背后)的C语意。
《深度探索C 对象模型》专注于C面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承。这《深度探索C 对象模型》让你知道:一旦你能够了解底层实现模型,你的程序代码将获得多么大的效率。Lippman澄清了那些关于C额外负荷与复杂度的各种错误信息和迷思,但也指出其中某些成本和利益交换确实存在。他阐述了各式各样的实现模型,指出它们的进化之道及其本质因素。书中涵盖了C++对象模型的语意暗示,并指出这个模型是如何影响你的程序的。
C和C++经典著作:C和指针 POINTERS ON C
《C和指针 POINTERS ON C》提供与C语言编程相关的全面资源和深入讨论。本书通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。
全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。
本书适合C语言初学者和初级c程序员阅读,也可作为计算机专业学生学习c语言的参考。
Kenneth·Reek是罗彻斯特理工大学计算机科学教授。他是一位经验丰富的C程序员,曾为多家公司担任过技术顾问。他讲授的课程有操作系统、数据通信、计算机网络、形式语言、算法分析和交换系统等。本书正是基于他9年的编程及教学的经验积累。
Effective C++:改善程序与设计的55个具体做法
有人说C 程序员可以分为两类,读过Effective C的和没读过的。世界C 大师Scott Meyers成名之作的第三版的确当得起这样的评价。当您读过《Effective C:改善程序与设计的55个具体做法(第3版)(中文版)(双色)》之后,就获得了迅速提升自己C++功力的一个契机。
在国际上,本书所引起的反响,波及整个计算机技术的出版领域,余音至今未绝。几乎在所有C 书籍的推荐名单上,《Effective C:改善程序与设计的55个具体做法(第3版)(中文版)(双色)》都会位于前三名。作者高超的技术把握力、独特的视角、诙谐轻松的写作风格、独具匠心的内容组织,都受到极大的推崇和仿效。这种奇特的现象,只能解释为人们对这本书衷心的赞美和推崇。
《Effective C++:改善程序与设计的55个具体做法(第3版)(中文版)(双色)》不是读完一遍就可以束之高阁的快餐读物,也不是用以解决手边问题的参考手册,而是需要您去反复阅读体会的,C 是真正程序员的语言,背后后精神的思想与无以伦比的表达能力,这使得它具有类似宗教般的魅力。希望这本书能够帮您跨越C的重重险阻,领略高处才有的壮美风光,做一个成功而快乐的C++程序员。
Scott Meyers,是全世界知名的C 软件开发专家之一。他是畅销书《Effective C》系列(Effective C++,More Effective C++,Effective STL)的作者,又是创新产品《Effective C++ CD》的设计者和作者,也是Addison-Wesley的“Effective Software Development Series”顾问编辑,以及《Software Development》杂志咨询板成员。他也为若干新公司的技术咨询板提供服务。Meyers于1993年自Brown大学获得计算机博士学位。