《C和C++代码精粹》——第 1 章 更好的C1.1 两种语言简述

本节书摘来自异步社区出版社《C和C++代码精粹》一书中的第1章,第1.1节,作者: 【美】Chuck Allison,更多章节内容可以访问云栖社区“异步社区”公众号查看。

第 1 章 更好的C

C和C++代码精粹
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

1.1 两种语言简述

C和C++代码精粹
20世纪80年代初期,C++起源于AT&T,称为带类的 C,当时Bjarne Stroustrup试图用Simula-67编写仿真程序。“类”在Simula中是表示用户定义类型的术语,编写好的仿真程序的关键是能够定义对象反映现实世界。除了把类加到C中使其成为最快的过程语言外,还有什么更好的方法可以得到快速仿真呢?选择 C语言不仅为类提供了有效的工具,并且也提供可移植性。虽然在C++出现之前已经有其他语言可以通过类支持数据抽象,但是,C++现在是应用最广泛的,几乎每个有C语言编译器的主要平台都支持C++。

第一次看C++就可能被它不可抵抗的魅力所吸引。如果有C语言基础,需要将下列术语(然后少许)增加到自己的词汇表中:

抽象类、存取限定符、适配器、(空间)分配器、基类、类、类的作用域、构造函数、复制构造函数、默认参数、默认构造函数、delete运算符、派生类、析构函数、异常、异常处理器、异常特化、显式构造函数、显式特化、导出、facet、友元、函数对象、继承、内联函数、迭代器、操纵器、成员函数、成员模板、多继承、不定性、名字空间、嵌套类、new处理器、new运算符、新风格类型转换、一次定义规则、运算符函数、重载、局部特化、指向成员的指针、多态、私有、保护、公有、纯虚函数、引用、运行期类型识别、静态成员、流、模板、模板特化、this指针、显著特性、try块、类型标识、类型安全连接、using指令、虚基类、虚析构函数、虚函数。

C++的优点在于它是一种能够处理复杂应用的强大的、高效的、面向对象的语言。因此它的缺点是它本身一定有些复杂,并且比C语言掌握起来更加困难。当然 C语言自己本身也是问题的一部分。C++是一个混合的语言,它将面向对象特征与流行的系统编程语言混合在一起。如果不是一个主语言绑定很少内容的话,介绍如此丰富的一组新特征是不可能的。因此与C语言的兼容性是C++设计的一个主要目标,就像1989年Bjarne在ANSI C++委员会的主题演讲中所陈述的那样,C++是“工程上的妥协”,并且必须要使它“越接近C越好,但不能过度”。

C++事实上是一种多范例语言,像C和Pascal那样,它支持传统的过程编程方式;像Ada一样,它支持数据抽象和通用性(模板);像其他所有面向对象语言一样,它支持继承性和多态性。所有这些可能都或多或少导致了C++成为“不纯”的编程语言,但是这也使C++成为产品化编程中更具实践性的选择。无疑C++拥有最好的性能,它可以在混合语言环境中很好地运行(不仅和C语言,而且也和其他语言),并且不需要像Smalltalk和LISP运行时所需的庞大运行期资源(后者是环境的,不只是编译和连接过程)。

下面将介绍其更多的优点。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值