开发者社区> 异步社区> 正文

《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运行时所需的庞大运行期资源(后者是环境的,不只是编译和连接过程)。

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【小白写代码之九九乘法表,用C/C++来实现】
【小白写代码之九九乘法表,用C/C++来实现】
15 0
使用C++实现的学生成绩管理系统(附完整代码)
使用C++实现的学生成绩管理系统(附完整代码)
40 0
【奇妙的数据结构世界】用图像和代码对堆栈的使用进行透彻学习 | C++
简单来说,数据结构是一种辅助程序设计并且进行优化的方法论,它不仅讨论数据的存储与处理的方法,同时也考虑到了数据彼此之间的关系与运算,从而极大程度的提高程序执行的效率,减少对内存空间的占用等。不同种类的数据结构适用于不同的程序应用,选择合适正确的数据结构,可以让算法发挥出更大的性能,给设计的程序带来更高效率的算法。
21 0
【奇妙的数据结构世界】用图像和代码对队列的使用进行透彻学习 | C++
简单来说,数据结构是一种辅助程序设计并且进行优化的方法论,它不仅讨论数据的存储与处理的方法,同时也考虑到了数据彼此之间的关系与运算,从而极大程度的提高程序执行的效率,减少对内存空间的占用等。不同种类的数据结构适用于不同的程序应用,选择合适正确的数据结构,可以让算法发挥出更大的性能,给设计的程序带来更高效率的算法。
28 0
【奇妙的数据结构世界】用图像和代码对链表的使用进行透彻学习 | C++
简单来说,数据结构是一种辅助程序设计并且进行优化的方法论,它不仅讨论数据的存储与处理的方法,同时也考虑到了数据彼此之间的关系与运算,从而极大程度的提高程序执行的效率,减少对内存空间的占用等。不同种类的数据结构适用于不同的程序应用,选择合适正确的数据结构,可以让算法发挥出更大的性能,给设计的程序带来更高效率的算法。
24 0
模拟退火(SA)算法介绍和应用细节-附SA结合登山算法求解VRPTW问题C++代码
模拟退火(SA)算法介绍和应用细节-附SA结合登山算法求解VRPTW问题C++代码
49 0
蚁群算法(ACO)原理梳理及应用细节 - 附求解VRPTW c++代码
蚁群算法(ACO)原理梳理及应用细节 - 附求解VRPTW c++代码
66 0
变邻域搜索(VNS)原理梳理和应用细节-附求解VRPTW问题C++代码
变邻域搜索(VNS)原理梳理和应用细节-附求解VRPTW问题C++代码
140 0
禁忌搜索(Tabu Search)原理梳理和应用细节-附求解VRPTW问题C++代码
禁忌搜索(Tabu Search)原理梳理和应用细节-附求解VRPTW问题C++代码
45 0
算法竞赛100天第1天 —— 第十一届蓝桥杯省赛C/C++ B组 —— 跑步锻炼(不看会后悔的《日期年份问题三种解法 — C++和Java代码以及Excel解法》)
算法竞赛100天第1天 —— 第十一届蓝桥杯省赛C/C++ B组 —— 跑步锻炼(不看会后悔的《日期年份问题三种解法 — C++和Java代码以及Excel解法》)
63 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
继承与功能组合
立即下载
对象的生命期管理
立即下载
移动与复制
立即下载