zoukankan      html  css  js  c++  java
  • 浅谈C++起源及应用领域

    一、C++的起源

      C语言是一种面向过程的编程语言,不能满足面向对象开发软件的需要。

      为支持面向对象的程序设计,1980年由贝尔实验室的Bjarne Stroustrup创建了C++程序设计语言。

      C++的重要目标就是面向对象的程序设计,因此在C++中引入了类的机制。

      1983年正式命名为C++(C Plus Plus),以后经过不断完善,形成了目前的C++。

      当前运用得较为广泛的C++有Microsoft公司的Visual C++(简称V C++)和Borland公司的Borland C++ (简称BC++)。

      发展时间线如下:

      1983年8月,  第一个C++实现投入使用(所以我喜欢说1983年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++的优缺点

      与C语言相比

        a、C语言的特点

          1.作为一种面向过程的结构化语言,易于调试和维护;

          2.表现能力和处理能力极强,可以直接访问内存的物理地址;

          3.C语言实现了对硬件的编程操作,也适合于应用软件的开发;

          4.C语言还具有效率高,可移植性强等特点。

        b、C++的特点

          1.在C语言的基础上进行扩充和完善,使C++兼容了C语言的面向过程特点,又成为了一种面向对象的程序设计语言;

          2.可以使用抽象数据类型进行基于对象的编程;

          3.可以使用多继承、多态进行面向对象的编程;

          4.可以担负起以模版为特征的泛型化编程。

      与java相比

        a、C++的优势

          1.Java比CC++慢。Java 1.0 比C慢20倍 现在的Java 1.6运行速度也只是C 的一半。 

          2. C++在继承和派生上比Java更灵活 

          3. C++ 中可以直接插入汇编 能直接操控底层硬件 所以操作系统还是得用 c写 

          4. Java办的到C++一定办得到,C++办得到的Java则不一定。

        b、C++的劣势

          1.Java比C,C++简单,学起来比CC++容易 

          2.Java完全对象化,比如数组在Java中是一个对象,含有length这个属性; 而不像C++中数组是一个指针。所以访问数组,Java都会进行边界检查,更安全 ,但牺牲了速度。同时因为Java中所有类都会继承Object这个基类,所以可以 把几个好不相干的类用基类联系起来,比如放在同一个数组里。 

          3.Java中没有指针这样不安全(虽然指针速度快)的概念。 

          4.Java中有完善的内存管理机制,能自动垃圾回收,最大可能降低内存溢 出的可能,同时提高编程效率。 

          5.Java中有完善的异常机制(标准C++中不够完善)。 

          6.java中保持数据时对象本身是在堆里,同时靠一在栈里的句柄与之连接 。这个设计更合理。

    三、应用领域

      1. 服务器端开发:很多游戏或者互联网公司的后台服务器程序都是基于C++开发的,而且大部分是linux操作系统,所以说,你如果想做这样
    的工作,需要熟悉linux操作系统及其在上面的开发,熟悉数据库开发,精通网络编程。

      2. 游戏:目前很多游戏客户端都是基于C++开发的,除了一些网页游戏可能不是,这个领域需要学习的东西就比较多,比如计算机图形、多媒体处理。

          3. 虚拟现实:这个领域一直在发展,目前VR眼镜比较火,需要大量基于这些的C++开发。

      4. 数字图像处理:比如像AutoCAD的系统开发,像OpenCV的视觉识别等等。

      5.科学计算
        在科学计算领域,FORTRAN是使用最多的语言之一。但是近年来,C++凭借先进的数值计算库、泛型编程等优势在这一领域也应用颇多。

      6.网络软件
        C++拥有很多成熟的用于网络通信的库,其中最具有代表性的是跨平台的、重量级的ACE库,该库可以说是C++语言最重要的成果之一,在许多重要的企业、部门甚至是军方都有应用。比如GOOGLE的chrome浏览器,就是使用C++开发。

      7.分布式应用。
      8.操作系统    在该领域,C语言是主要使用的编程语言。但是C++凭借其对C的兼容性,面向对象性质也开始在该领域崭露头角。

      9.设备驱动程序

        10.移动(手持)设备。

        11.嵌入式系统。

  • 相关阅读:
    1.求整数最大的连续0的个数 BinaryGap Find longest sequence of zeros in binary representation of an integer.
    JTree实例
    java发送邮件完整实例 java邮件工具类
    oracle存储过程中文乱码问题
    黑马day16 jquery&内容过滤选择器&可见度选择器
    隐性反馈行为数据的协同过滤推荐算法
    ACdream 1083 有向无环图dp
    正則表達式
    hdu 2209 bfs+状压
    action属性注入为null
  • 原文地址:https://www.cnblogs.com/qsz805611492/p/9439458.html
Copyright © 2011-2022 走看看