background image

     C++  

由 Bjarne Stroustrup 于 1979 年在位于新泽西州 Murray Hill 的贝

尔实验室成功发明。起初它的名字叫 带有类的 C”,后来在 1983 年更名为
C++。Stroustrup 在 C 的基础上构建了 C++,因此 C++包括 C 的所有特性
和优点。它还继承了 C 的理念:程序员而不是程序掌控一切。有一点必须明确,
Stroustrup 并没有创建一个全新的编程语言。相反,它增强了已经高度成功的
语言。大多数 Stroustrup 为 C 增加的特性都是为了支持面向对象的编程。从本
质上来讲,C++就是支持面向对象的 C。通过在 C 的基础上构建 C++,就实
现了到面向对象编程的平滑过渡。C 程序员不必重新学习一门新的语言,只需
要学习那些新增的特性,就能收获面向对象编程带来的好处。在设计 C++语
言的时候,Stroustrup 清楚地知道在增加支持面向对象编程的特性时,保持
原有 C 的特性,包括 C 的高效,灵活和 C 的设计理念是非常重要的。幸运的是,
他的目标实现了。C++在提供了面向对象的编程优点同时,还保留了 C 的灵
活。尽管发明 C++的初衷是为了辅助管理那些大型的程序,但它绝不仅限于
此。实际上,C++的面向对象特性可以被有效地引用到实际上任何程序中。C+
+可以广泛地被用来开发诸如编辑器,数据库,个人文件系统,网络工具,通
信程序等,这些都非常常见。由于 C++保留了 C 的高效性,大量的高性能系
统软件都是用 C++开发的。同样,C++也经常被用来开发 windows 程序。

 

C++的发展

     C++被发明后,经过了三次大的修订,每次修订都对语言自身做了增加和
改动。第一次和第二修订分别是在 1985 年和 1990 年。第三次修订发生在 C+
+标准化的过程中。几年前(现在来看,应该是十几年前了),人们开始进行
C++的标准化工作。那时,建立了由美国国家标准研究所(ANSI)和国际标准
组织(ISO)合作的标准化组织组。建议标准的第一次草案是在 1994 年 1 月
25 日完成的。在这份草案中,ANSI/ISO 联合委员会保留了 Stroustrup 当初
定义的特性,并增加了一些新的特性。总的来说,这份最初的草案反映了当时
C++的情况。在此之后不久,发生了一件事情,促使了联合委员会大大地扩展
了该标准:由 Alexander Stepanov 提出的标准模板库的创建。标准模板库是
一套我们可以用之处理数据的通用程序的集合。通用模板库很强大,也很简洁
优雅。但是它很巨大。在第一次草案之后,委员会曾经投票来决议是否在标准
C++中增加标准模板库。标准模板库的增加使得 C++大大超出了起初定义的
范围。对标准模板库和其它一些特性的增加使得 C++标准化的步伐减慢了许
多。完全可以说 C++的标准化工作比人们期望的时间要长许多。在整个过程中,
C++中加入了许多新的特性,并做了许多小的改动。实际上,由该联合委员会
制定的 C++比 Stroustrup 当初设计的 C++要复杂很多。最终的草案在 1997
年 12 月 14 日通过,ANSI/ISO 标准 C++在 1998 年成为现实。这就是人们通
常说的标准 C++。本书描述的都是标准的 C++。本书描述的 C++是所有主流
C++编译器,包括微软的 visual C++都支持的 C++。因此本书中的代码和信
息是完全可移植的。

必备技能 1.2C++与 Java 和 C#的关系