设为首页 加入收藏

TOP

1.1.1 C++的历史沿革
2013-10-07 14:15:31 来源: 作者: 【 】 浏览:81
Tags:1.1.1 历史沿革

1.1.1  C++(www.cppentry.com)的历史沿革

读者应该了解过C语言的发展历程,C语言之所以要起名为"C",是因为其主要参考当时的一门B语言,C语言的设计者认为C语言是B语言的进步,所以就起名为C语言。当C语言发展到顶峰的时刻,出现了一个版本叫C with Class,这就是C++(www.cppentry.com)最早的版本,它在C语言中增加了class关键字和类。C标准委员会决定为这个版本的C起个新的名字,当时征集了很多种名字,最后采纳了其中一个人的意见,以C语言中的"++"运算符来体现它是C语言的进步,因此在1983年将C with Class命名为C++(www.cppentry.com),同时也成立了C++(www.cppentry.com)标准委员会。

因此,C++(www.cppentry.com)语言起源于C语言。C++(www.cppentry.com)出现后,美国国家标准化协会ANSI(American National Standard Instiute)和国际标准化组织ISO(International Standards Organization)一起进行了C++(www.cppentry.com)的标准化工作,并于1998年正式发布了C++(www.cppentry.com)语言的国际标准。随后,各软件商推出的C++(www.cppentry.com)编译器都支持该标准,并有不同程度的拓展。因此,C++(www.cppentry.com)是具有国际标准的编程(www.cppentry.com)语言,通常称做ANSI/ISO C++(www.cppentry.com)。

需要注意的是,刚诞生的C++(www.cppentry.com)和现在的版本有很大的区别。首先,当时还没有真正的C++(www.cppentry.com)编译器,C++(www.cppentry.com)代码都是先转化为C代码,然后用C编译器编译的;其次,当时的C++(www.cppentry.com)没有继承特性,没有关键字,也没有虚函数。经过了多次演变和修订,每次逐步增加一些新的关键字和新特性,最后才变成现在的C++(www.cppentry.com)。C++(www.cppentry.com)语言的诞生过程如图1.1所示。

 
(点击查看大图)图1.1  C++(www.cppentry.com)的历史沿革

目前可以认为标准化的C++(www.cppentry.com)语言包含了如下4个"子语言"。

C子语言:C++(www.cppentry.com)支持C语言的几乎全部功能,在语法上与C语言仅有极微妙的差别(如括号表达式的左右值性,具体请参考C++(www.cppentry.com)标准文献)。

面向对象的C++(www.cppentry.com):C++(www.cppentry.com)首先作为一门面向对象的语言而闻名,这个特点在这里不再详述。

泛型编程(www.cppentry.com)语言:C++(www.cppentry.com)强大(但容易失控)的模板功能使它能在编译期完成许多工作,从而大大提高运行效率。

STL(C++(www.cppentry.com)标准模板库):随着STL的不断发展,它已经逐步成为C++(www.cppentry.com)程序设计中不可或缺的部分,其效率比一般的C++(www.cppentry.com)代码稍低,但是其安全性与规范性使其大受欢迎。

在上述C++(www.cppentry.com)的组成部分中,C子语言是指C++(www.cppentry.com)作为C语言的超集,兼容了C语言的几乎全部功能,其同样具有结构化程序设计语言的特点。面向对象的C++(www.cppentry.com)子语言是指其支持的面向对象程序设计的功能,以类和对象为基本单元进行编程(www.cppentry.com)。这两部分是本书将要重点讲解的内容,C++(www.cppentry.com)的组成部分如图1.2所示。

 
图1.2  C++(www.cppentry.com)结构图

根据目前C++(www.cppentry.com)所包含的子集,编程(www.cppentry.com)界将C++(www.cppentry.com)语言的发展简单地划分为三个阶段。

第一阶段:从20世纪80年代到1995年。这一阶段C++(www.cppentry.com)语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大的份额。

第二阶段:从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C++(www.cppentry.com)中占据了越来越多的比重。当然,由于Java、C#等语言的出现和硬件价格的大规模下降,C++(www.cppentry.com)受到了一定的冲击。

第三阶段:从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程(www.cppentry.com)和模板元编程(www.cppentry.com)的出现,C++(www.cppentry.com)出现了发展历史上又一个新的高峰,这些新技术的出现及和原有技术的融合,使C++(www.cppentry.com)已经成为当今主流程序设计语言中最复杂的一员。

提示:就目前学习C++(www.cppentry.com)而言,可以认为它是一门独立的语言。C++(www.cppentry.com)并不依赖C语言,读者完全可以不学C语言,而直接学习C++(www.cppentry.com)。

事实上,C++(www.cppentry.com)与C语言的效率往往相差5%左右。所以有人认为在大多数场合,C++(www.cppentry.com)完全可以取代C语言,然而在进行单片机等需要谨慎利用空间、直接操作硬件的地方,还是应该使用C语言。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇1.2.3 C++的应用领域 下一篇1.2.1 C++的特征

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: