设为首页 加入收藏

TOP

1.1.3 新C++语言的设计目标
2013-10-07 16:23:22 来源: 作者: 【 】 浏览:108
Tags:1.1.3 语言 设计 目标

1.1.3 新C++(www.cppentry.com)语言的设计目标

如果读者已经学习过C++(www.cppentry.com)98/03,就可以发现C++(www.cppentry.com)98/03的设计目标如下:

C语言更适合系统编程(www.cppentry.com)(且与C语言兼容)。

支持数据抽象。

支持面向对象编程(www.cppentry.com)。

支持泛型编程(www.cppentry.com)。

这些特点使得面向对象编程(www.cppentry.com)和泛型编程(www.cppentry.com)在过去的10~20年内成为编程(www.cppentry.com)界的明星。不过从那时开始,C++(www.cppentry.com)的发展就不仅仅是靠学者的远见前瞻去推动的,有时也会借由一些“奇缘”而演进。比方说,C++(www.cppentry.com)模板就是这样一个“奇缘”。它使得C++(www.cppentry.com)近乎成为了一种函数式编程(www.cppentry.com)语言,而且还使得C++(www.cppentry.com)程序员拥有了模板元编程(www.cppentry.com)的能力。但是凡事有两面,C++(www.cppentry.com)98/03中的一些较为激进的特性,比如说动态异常处理、输出模板,现在回顾起来则是不太需要的。当然,这是由于我们有了“后见之明”,或者由于这些特性在新情况下不再适用,又或者它们影响了C++(www.cppentry.com)11的新特性的设计。因此一部分这样的特性已经被C++(www.cppentry.com)11弃用了。在附录B中我们会一一列出这些弃用的特性,并分析其被弃用的原因。

而C++(www.cppentry.com)11的整体设计目标如下:

使得C++(www.cppentry.com)成为更好的适用于系统开发及库开发的语言。

使得C++(www.cppentry.com)成为更易于教学的语言(语法更加一致化和简单化)。

保证语言的稳定性,以及和C++(www.cppentry.com)03及C语言的兼容性。

我们可以分别解释一下。

首先,使C++(www.cppentry.com)成为更好的适用于系统开发及库开发的语言,意味着标准并不只是注重为某些特定的领域提供专业化功能,比如专门为Windows开发提供设计,或者专门为数值计算提供设计。标准希望的是使C++(www.cppentry.com)能够对各种系统的编程(www.cppentry.com)都作出贡献。

其次,使得C++(www.cppentry.com)更易于教学,则意味着C++(www.cppentry.com)11修复了许多令程序员不安的语言“毒瘤”。这样一来,C++(www.cppentry.com)语法显得更加一致化,新手使用起来也更容易上手,而且有了更好的语法保障。其实语言复杂也有复杂的好处,比如ROOTS、DEALII等一些复杂科学运算的算法,它们的作者非常喜爱泛型编程(www.cppentry.com)带来的灵活性,于是C++(www.cppentry.com)语言最复杂的部分正好满足了他们的需求。但是在这个世界上,新手总是远多于专家。而即使是专家,也常常只是精通自己的领域。因此语言不应该复杂到影响人们的学习。本书作者之一也是WG21中的一员,从结果上看,无论读者怎么看待C++(www.cppentry.com)11,委员会大多数人都认同C++(www.cppentry.com)11达成了易于教学这个目标(即使其中还存在着些看似严重的小缺陷)。

最后,则是语言的稳定性。经验告诉我们,伟大的编程(www.cppentry.com)语言能够长期存活下来的原因还是因为语言的设计突出了实用性。事实上,在标准制定过程中,委员会承担了很多压力,这些压力源自于大家对加入更多语言特性的期盼—每一个人都希望将其他编程(www.cppentry.com)语言中自己喜欢的特性加入到新的C++(www.cppentry.com)中。对于这些热烈而有些许盲目的期盼,委员会成员在Bjarne Stroustrup教授的引导下,选择了不断将许多无关的特性排除在外。其目的是防止C++(www.cppentry.com)成为一个千头万绪的但功能互不关联的语言。而如同现在看到的那样,C++(www.cppentry.com)11并非大而无序,相反地,许多特性可以良好地协作,进而达到“1 + 1 > 2”的效果。可以说,有了这些努力,今天的读者才能够使用稳定而强大的C++(www.cppentry.com)11,而不用担心语言本身存在着混乱状况甚至是冲突。

值得一提的是,虽然在取舍新语言特性方面标准委员会曾面临过巨大压力,但与此同时,标准委员会却没有收集到足够丰富的库的新特性。作为一种通用型语言,C++(www.cppentry.com)是否是成功,通常会依赖于不同领域中C++(www.cppentry.com)的使用情况,比如科学计算、游戏、制造业、网络编程(www.cppentry.com)等。在C++(www.cppentry.com)11通过的标准库中,服务于各个领域的新特性确实还是太少了。因此很有可能在下一个版本的C++(www.cppentry.com)标准制定中,如何标准化地使用库将成为热门话题,标准委员会也准备好了接受来自这方面的压力。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇IBM XL编译器中国开发团队简介 下一篇1.2.1 C++的江湖地位

评论

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

·Redis 分布式锁全解 (2025-12-25 17:19:51)
·SpringBoot 整合 Red (2025-12-25 17:19:48)
·MongoDB 索引 - 菜鸟 (2025-12-25 17:19:45)
·What Is Linux (2025-12-25 16:57:17)
·Linux小白必备:超全 (2025-12-25 16:57:14)