c++之父谈C++.pdf
文本预览下载声明
C++
C++
CC++++之父
2010年01月22日 星期五 06:03P.M.
BjarneStroustrup
BjarneStroustrup
BBjjaarrnneeSSttrroouussttrruupp
BjarneStroustrup(本贾尼·斯特劳斯特卢普)博士,1950年出生于丹麦,先后毕业于丹麦阿鲁
斯大学和英国剑桥大学,ATT大规模程序设计研究部门负责人,ATT、贝尔实验室和ACM
成员。1979年,B.S开始开发一种语言,当时称为“CwithClass”,后来演化为C++。1998
年,ANSI/ISO C++标准建立,同年,B. S 推出了其经典著作 The C++ Programming
Language的第三版。C++的标准化标志着B.S博士倾20年心血的伟大构想终于实现。但是,
计算机技术的发展一日千里,就在几年前人们还猜想 C++最终将一统天下,然而随着
Internet的爆炸性增长,类似Java、C#等新的、现代感十足的语言咄咄逼人,各种Script
语言更是如雨后春笋纷纷涌现。在这种情况下,人们不禁有些惶恐不安。C++是不是已经
过时了呢?其前景如何?标准C++有怎样的意义?应该如何学习?我们不妨看看B.S对这
些问题的思考。以下文字是译者从Stroustrup1998年之后发表的若干文章、谈话笔记中精选
出来的,由于出处不一,内容多有重复,为保持完整,亦一并译出。
以下内容选自B.S在自己主页上发表的FAQ
1. 请谈谈C++书。
没有,也不可能有一本书对于所有人来说都是最好的。不过对于那些真正的程序员来说,
如果他喜欢从“经典风格”的书中间学习一些新的概念和技术,我推荐我的 The C++
ProgrammingLanguage,1998年的第三版和特别版。那本书讲的是纯而又纯的C++,完全
独立于平台和库(当然得讲到标准库)。该书面向那些有一定经验的程序员,帮助他们掌握
C++,但不适合毫无经验的初学者入门,也不适合那些临时程序员品尝C++快餐。所以这
本书的重点在于概念和技术,而且在完整性和精确性上下了不少功夫。如果你想知道为什么
C++会变成今天的模样,我的另一本书TheDesignandEvolutionofC++ 能给你满意的答
案。理解设计的原则和限制能帮助你写出更好的程序。是最好的书评网站之
一,很多有经验的程序员在此仗义执言,不妨去看看。
2. 学习C++要花多长时间?
这要看你说的“学习”是什么意思了。如果你是一个 Pascal程序员,你应该能很快地使
你的C++水平达到与Pascal相近的程度;而如果你是一个C程序员,一天之内你就能学会
使用C++进行更出色的C风格编程。另一方面,如果你想完全掌握C++的主要机制,例如
数据抽象,面向对象编程,通用编程,面向对象设计等等,而此前又对这些东西不很熟悉的
话,花上个一两年是不足为奇的。那么是不是说这就是学习C++所需要的时间呢?也许再
翻一番,我想打算成为更出色的设计师和程序员最起码也要这么长的时间。如果学习一种新
的语言不能使我们的工作和思想方式发生深刻的变革,那又何苦来哉?跟成为一个钢琴家或
者熟练掌握一门外语相比,学习一种新的、不同的语言和编程风格还算是简单的。
3. 了解C是学习C++的先决条件吗?
否!C++中与C相近的子集其实比C语言本身要好学,类型方面的错误会少一些,也
不像C那样绕圈子,还有更好的支持库。所以应该从这个子集开始学习C++。
4. 要想成为真正的OO程序员,我是不是得先学习Smalltalk?
否。如果你想学Smalltaok,尽管去学。这种语言很有趣,而且学习新东西总是一个好
主意。但是Smalltalk不是C++,而且把Smalltalk的编程风格用在C++里不会有什么好结
果。如果你想成为一个出色的C++程序员,而且也没有几个月的时间百无聊赖,请你集中
力量学好C++以及其背后的思想。
5. 我如何开始学习C++?
这取决于你的基础和学习动机。如果你是个初学者,我想你最好找个有经验的程序员来
帮助你,要不然你在学习和实践中不可避免的犯下的种种错误会大大地打击你的积极性。另
外,即使你的编译器配备了充足的文档资料,一本C++书籍也永远是必不可少的,毕竟文
档资料不是学习编程思想的好教材。
选择书籍时,务必注意该书是不是从一开始就讲授标准C++,并且矢志不渝地使用标
准库机制。例如,从输入中读取一个字符串应该是这样的:
strings;//StandardC++style
显示全部