孟岩谈《C++程序设计原理与实践》
十年以来,Bjarne Stroustrup在不同的场合多次表示过,C++最大的弱点就是它的教学,因此,他许诺要亲自写一本教授C++的书——不同于The C++ Programming Language那样的、真正面向学习者的教程,来正本清源,以一种他认为正确的方式来教C++。《C++程序设计原理与实践》 这本书就是他实现诺言的作品。
![](http://img31.ddimg.cn/87/7/20884731-1_b.jpg)
这本书并非零起点,对于完全没有编程基础的人来说,恐怕并不适合。从技术点的组织来看,也是一如Bjarne Stroustrup一直以来的风格,以一种娓娓道来的方式分布在书中各个地方。光看目录,你很难知道他会在哪里讲到什么技术点。但如果读者有一定基础,知道编程是怎么回事,然后愿意以从头到尾细细品读的方式来学习C++,那么这本书应该是不错的选择。但知识点的分散也有很大问题,也不是所有人都有那个耐心从头到尾精读,所以这本书也不能取代其他一些经典的C++书,比如可以当字典查的C++ Primer和The C++ Standard Library,比如可以当博客读的Effective C++。但是有了这本书以后,学习C++的时候确实可以拿它当主干,其他的作参考和补充。
为什么这么说呢?因为C++这个语言有个大陷阱,就是存在很多诱惑和可能性,很容易让学习者早早就走到那些有趣的底层细节和奇技淫巧上,只见树木不见森林。比如你在一个类的设计阶段就在考虑是否要让它的某个成员函数内联,或者本来要设计一个类,然后动手时成了一个模板类,重构时变成了一个多参数模板类,这都是疑似坠井的信号。实际上以今天C++语言的成熟程度来讲,绝大多数情况下,程序员可以依赖高级的基础设施完成工作,只在非常罕见的地方需要用到高度技巧化和底层化的技术。因此,按理来说,一个C++学习者也应该是先掌握这个语言的主体部分,然后才在必要的情况下进入细节的学习。这个应该是正途,也是这本书采取的思路。这本书讲授C++的最大特色,就是把C++当做一个真正高级的语言去讲,从头至尾充分调动了C++标准库以及其他高级的基础设施。全书处理的非常平和,看不到技巧的炫耀和故作高深的叫卖,一切看上去都挺自然的。从C++自身的发展来讲,这本书的出版,标志着C++教学度过了长达20年的青春期,进入了成熟期。
然而,就现实而言,这本书恐怕是来得太晚了。且不说C++的应用领域较之十年前已经大幅度萎缩了,即使是仍然在使用 C++的领域里,也早就充斥了大量的传统遗留代码。这些传统的存在,强迫你必须按照奇技淫巧的方式来撰写你自己的代码,无论你多么不情愿。所以我不认为这本书,以及C++0X的标准能够总体上改变C++应用的现状。悲观点的说法是,C++到死,也就是这个样了,难以有大的改观。但是如果有人还是以很认真很严肃的态度来学习C++,也能够有机会在一些领域来做一些全新的工作,这本书应该是可以好好读一下的。
很多人可能觉得C++不行了,我相信在未来一段时间里,C++还有一定的用武之地。云计算兴起之后,服务端的竞争可能还会使得C++在某些领域复兴,所以C++还是可以学一学的。C++这个语言最好也是最差的地方,就是它万金油,怎么写都能工作,好多种风格都支持,你用着用着总会有个好恶。比如对我来说,C++这个语言最强的地方在于它的模板技术提供了足够复杂的程序库开发机制,可以把复杂性高度集中在程序库里。做得好的话,在应用代码部分我连一个for循环都不用写,犯错误的机会就少,效率还不打折扣,关键是看着代码心里爽。那么它最烂的地方是面向对象基础设施,简直不入流,根本不配称为面向对象语言。从高的层面来讲,C++可以写组件,但是想做周全了挺麻烦的,算不上好的组件语言。从底层来说,C++跟C差不多是完全兼容,狗急跳墙了,我可以回去写C代码。别人可能有不同的看法,不过有一点经验的人,对于C++的长长短短多少都会有个感觉、有个偏爱。但是我现在觉得,用C++,最重要的一条,就是心态平和,别较劲,别非要让程序统一到某个你最信仰的风格下,更不用为此花一大堆精力去攒包装(wrapper),什么直接就用什么。你写程序时第一个想到的路子,也就是你读程序时最容易理解的路子。用始皇帝张艺谋的话说,就是手中无剑,心中也无剑,就是不杀,就是和平。以前的C++程序员们,多少都有些杀气,有嗔念,要走过很久才回得来。也许这本书能够帮助后来者比较快地获得一颗平常心?没准儿。至少我希望是这样。
分享到:
相关推荐
C++之父编写,我在学习C++过程中...以基本概念和基本技术为重点:与传统的C++教材相比,《C++程序设计原理与实践》对基本概念和基本技术的介绍更为深入。这会为你编写有用、正确、易维护和有效的代码打下坚实的基础。
《C++程序设计原理与实践》是一本深入探讨C++编程语言的经典著作,由C++之父Bjarne Stroustrup编写。这本书旨在为初学者和有经验的程序员提供全面的C++学习材料,涵盖了从基础语法到高级特性的全方位讲解。作为"完整...
根据提供的标题、描述和标签,我们可以推断出这是一本关于C++程序设计原理与实践的书籍,并且是高清扫描版的PDF格式。虽然部分内容并未给出实际的文字内容,但从题目和描述中,我们可以深入探讨一些关于C++程序设计...
《C++程序设计原理与实践》是一本由Bjarne Stroustrup编著,王刚等人翻译的经典之作,深入浅出地介绍了C++这门强大的编程语言。这本书旨在帮助读者理解C++的基本概念,掌握其核心特性,并通过实践提升编程技能。 ...
《C++程序设计原理与实践》是c++之父Bjame stroustmp的最新力作。书中广泛地介绍了程序设计的基本概念和技术,包括类型系统、算术运算、控制结构、错误处理等;介绍了从键盘和文件获取数值和文本数据的方法以及以...
根据提供的标题“C++程序设计原理与实践(含书签目录)”以及描述“C++程序设计原理与实践,自己添加了书签目录,方便阅读”,我们可以推断出该资源是一本关于C++编程语言的书籍,其主要内容涵盖C++程序设计的基础...
《C++程序设计原理与实践》是一本深受程序员喜爱的经典教材,主要讲解了C++编程的基础和高级概念。源码是学习编程时不可或缺的一部分,它提供了实际操作和理解理论知识的机会。这个压缩包包含了该书第一版的相关练习...
《C++程序设计原理与实践》是C++编程领域的一本经典教材,尤其在第二版中,作者深入浅出地介绍了C++语言的基础知识和编程技巧。这本书主要面向初学者和有一定经验的程序员,旨在帮助读者掌握C++的核心概念,并能实际...
《C++程序设计原理与实践》是一本深受程序员喜爱的经典教材,由Bjarne Stroustrup,C++语言的设计者和主要开发者所著。这本书深入浅出地介绍了C++编程语言,涵盖了从基本语法到高级特性的全面内容。附录部分通常会...
《C++程序设计-原理与实践第2版—进阶篇》是一本深入探讨C++编程语言的专著,旨在帮助读者从基础知识过渡到高级概念和技术。这本书详细讲解了C++的核心特性,以及如何利用这些特性来编写高效、可维护的代码。在阅读...
本书是经典程序设计思想与C++开发实践的完美结合,是C++之父回归校园后对C++编程原理和技巧的全新阐述。书中全面地介绍了程序设计基本原理,包括基本概念、设计和编程技术、语言特性以及标准库等,教你学会如何编写...
c++程序设计原理与实践例程源码 Chapter02 Chapter03 Chapter04 Chapter05 Chapter06 Chapter07 Chapter08 Chapter09 Chapter10 Chapter11 Chapter12 Chapter13 Chapter14 Chapter15 Chapter16 Chapter17 Chapter18 ...
《C++程序设计原理与实践》是C++之父Bjarne Stroustrup的经典之作,这本书深入浅出地讲解了C++编程语言的核心概念、设计原则以及实践技巧。源代码作为书中理论知识的实践体现,提供了读者动手操作、加深理解的机会。...