• C++历史发展及优缺点


    语言的发展是一个逐步递进的过程,C++ 是直接从 C 语言发展过来的,而 C 语言是从 B 语言发展过来的,B 语言是
    BCPL 的一个解释性后代,BCPL 是 Basic CPL。其中最有趣的是 CPL 中 C 的由来,由于当时这个语言是剑桥大学和
    伦敦大学合作开发的,在伦敦的人员加入之前,C 表示剑桥,伦敦人员加入之后,C 表示 Combined 组合。还有一种非
    正式的说法,C 表示 Christopher,因为 Christopher 是 CPL 背后的主要动力。
    最初导致C++诞生的原因是在Bjarne博士等人试图去分析UNIX的内核的时候,这项工作开始于1979年4月,当时由于没
    有合适的工具能够有效的分析由于内核分布而造成的网络流量,以及怎样将内核模块化。同年10月,Bjarne博士完成了
    一个可以运行的预处理程序,称之为Cpre,它为C加上了类似Simula的类机制。在这个过程中,Bjarne博士开始思考是
    不是要开发一种新的语言,当时贝尔实验室对这个想法很感兴趣,就让Bjarne博士等人组成一个开发小组,专门进行研究。

    当时不是叫做C++,而是C with class,这是把它当作一种C语言的有效扩充。由于当时C语言在编程界居于老大的地位,
    要想发展一种新的语言,最强大的竞争对手就是C语言,所以当时有两个问题最受关注:C++要在运行时间、代码紧凑性和
    数据紧凑性方面能够与C语言相媲美,但是还要尽量避免在语言应用领域的限制。在这种情况下,一个很自然的想法就是让
    C++从C语言继承过来,但是我们的Bjarne博士更具有先见之明,他为了避免受到C语言的局限性,参考了很多的语言,例
    如:从Simula继承了类的概念,从Algol68继承了运算符重载、引用以及在任何地方声明变量的能力

    下面让我们来一起看一下C++历史上的主要事件:

    1983年8月, 第一个C++实现投入使用
    1983年12月,Rick Mascitti建议命名为CPlusPlus,即C++。
    1985年2月, 第一个C++ Release E发布。
    10月,CFront的第一个商业发布,CFront Release 1.0。
    10月,Bjarne博士完成了经典巨著The C++ Programming Language第一版
    1986年11月,C++第一个商业移植CFront 1.1,Glockenspiel。
    1987年2月, CFront Release 1.2发布。
    11月,第一个USENIX C++会议在新墨西哥州举行。
    1988年10月,第一次USENIX C++实现者工作会议在科罗拉多州举行。
    1989年12月,ANSI X3J16在华盛顿组织会议。
    1990年3月, 第一次ANSI X3J16技术会议在新泽西州召开.
    5月, C++的又一个传世经典ARM诞生。
    7月, 模板被加入。
    11月,异常被加入。
    1991年6月, The C++ Programming Language第二版完成。
    6月, 第一次ISO WG21会议在瑞典召开。
    10月,CFront Release 3.0发布。
    1993年3月, 运行时类型识别在俄勒冈州被加入。
    7月, 名字空间在德国慕尼黑被加入。
    1994年8月, ANSI/ISO委员会草案登记。
    1997年7月, The C++ Programming Language第三版完成。
    10月,ISO标准通过表决被接受
    1998年11月,ISO标准被批准。


    C++毕竟是编译型的语言,比Java这种解释型的语言的优势就是运行效率高,保持了C的风格,更接近计算机的思维,有助于对计算系系统的学习。

    底层操纵能力强,保留了指针这些直接操作内存的元素;

    类Unix系统核心代码都是使用C语言写的,这也算是C、C++的一个巨大的学习资源,既可以学习语言也可以学习操作系统,一举两得。

    C++不是完全的面向对象语言,java是完全的面向对象的语言。C++既保留了C语言的灵活性,简洁高效和接近汇编底层语言等的特点,又增加面向对象等特点。用C++写的代码可读性好,运行效率高。

    在C语言的基础上,C++增加下面的内容:

      (1)类型检查更加严格

      (2)增加了面向对象机制

      (3)增加了泛型编程的机制

      (4)增加了函数重载和运算符重载。

      (5)异常处理机制

      (6)标准模板库STL。

    C++兼容C语言的绝大部分内容,但还是有一些差异的,不兼容的,比如C语言允许从void* 隐式转化为其他类型的指针,这在c++中是不允许的。

      C++的优点:

      1.代码可读性好。

      2.可重用性好。

      3.可移植。

      4.C++设计成无需复杂的程序设计环境

      5.运行效率高,高效安全

      6.语言简洁,编写风格自由。

      7.提供了标准库stl

      8.面向对象机制

      9.很多优秀的程序框架包括Boost、Qt、MFC、OWL、wxWidgets、WTL就是使用的C++。

    等等

    C++的缺点与缺陷:

      1.相对java来说,没有垃圾回收机制,可能引起内存设漏;

      2.内容较多较难,学起来相对困难;

      等等。

      C++更适合大项目,在大项目中C++是其他言语不可比拟的。做较小的项目,性能可能比不上java

  • 相关阅读:
    shell脚本修改Linux系统中所有IP样例
    关闭并卸载数据库脚本
    查询编译不通过的存储过程并重新编译
    SQL函数造数据样例(一)
    类型转换和多态
    Java学习笔记(三)
    Java学习笔记二()
    Java学习笔记(一)
    1.2.零宽断言
    1.3.匹配小括号的字符(可能有小括号在一行的,也有多行的)
  • 原文地址:https://www.cnblogs.com/yanxutao/p/9439354.html
Copyright © 2020-2023  润新知