zoukankan      html  css  js  c++  java
  • C++的概述

    一、C++的概述

      世界上第一种计算机高级语言是诞生于1954年的FORTRAN语言。之后出现了多种计算机高级语言。1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的“副产品”。它充分结合了汇编语言和高级语言的优点,高效而灵活,又容易移植。

      1971年,瑞士联邦技术学院N.Wirth教授发明了Pascal语言。Pascal语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言。 

      20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。他使用过Simula和ALGOL,接触过C。他对Simula的类体系感受颇深,对ALGOL的结构也很有研究,深知运行效率的意义。既要编程简单、正确可靠,又要运行高效、可移植,是Bjarne Stroustrup的初衷。以C为背景,以Simula思想为基础,正好符合他的设想。1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。1983年该语言被正式命名为C++。

      C++从最初的C with class,经历了从C++98、C++ 03、C++ 11、C++ 14再到C++17多次标准化改造,功能得到了极大的丰富,已经演变为一门集面向过程、面向对象、函数式、泛型和元编程等多种编程范式的复杂编程语言。

    二、C、C++、Java各自的优缺点

       C语言的优点:

        1、简洁紧凑、灵活方便

        2、运算符丰富

        3、数据结构丰富

        4、C是结构式语言

        5、C语法限制不太严格,程序设计自由度大

        6、C语言允许直接访问物理地址,可以直接 对硬件进行操作

        7、C语言程序生成代码质量高,程序执行效 率高

        8、C语言适用范围大,可移植性好

        9、C语言有一个突出的优点就是适合于多种 操作系统,如DOS、UNIX,也适用于多种机型

        10、有效地将一个较复杂的程序系统设计任 务分解成许多易于控制和处理的子任务,便 于开发和维护

      C语言的缺点:C语言的缺点主要是表现在数据的封装性 上,这一点使得C在数据的安全性上做的有 很大缺陷,这也是C和C++的一大区别。C语言的语法限制不太严格,对变量的类 型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。

        1、可重用性差

        2、数据安全性差

        3、难以开发大型软件和图形界面的应用软件

        4、把数据和处理数据的过程分离为相互独立 的实体

        5、当数据结构改变时,所有相关的处理过程 都要进行相应的修改

        6、每一种相对于老问题的新方法都要带来额 外的开销

        7、图形用户界面的应用程序,很难用过程来 描述和实现,开发和维护也都很困难
      

       C++的优点:

        1、可扩展性强

        2、高效 简洁 快速

        3、可移植性

        4、面向对象的特性

        5、强大而灵活的表达能力和不输于C的效率

        6、支持硬件开发

        7、程序模块间的关系更为简单,程序模块的 独立性、数据的安全性就有了良好的保障

        8、通过继承与多态性,可以大大提高程序的 可重用性,使得软件的开发和维护都更为方便

      C++的缺点:

        1、比较底层,易用性不是很好

        2、多重继承和友元机制

        3、标准库涵盖范围不足

        4、开发周期长

        5、非并行

        6、掌握有难度

        7、粒度封装不够

      Java的优点:

        1、简单性

        2、面向对象性(面向对象的程度可以达到 95%)

        3、健壮性

        4、跨平台性

        5、高性能(自动垃圾回收机制)

        6、多线程

        7、动态性

        8、安全性

       Java的缺点:

        1、效率低(毋庸置疑)

        2、跨平台是它最大的优点也是最大的缺点

        3、复杂性(做一个项目需要很多的知识,涉 及面广)

    三、C++的应用领域

      哪些项目在使用C++:

        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、嵌入式系统。

        12、教育与科研。

        13、部分行业应用。

      杭州可以就业C++的公司:

        东方通信

          移动通信、程控交换、光电传输、激光照排设备、自动柜员机(ATM)、银行自助服务终端、电子支付终端(POS)、集成电路卡读写及产品及其部件、配套产品以及计算机软件、系统和通信网络终端产品的研制、开发、制造、销售、代理与服务。

        网易公司

          门户网站、在线游戏、电子邮箱、在线教育、电子商务、在线音乐、网易bobo等。

        浙江大华技术股份有限公司

          计算机软件的开发、服务、销售,电子产品及通讯产品的设计、开发、生产、安装及销售,网络产品的开发、系统集成与销售,电子产品工程的设计、安装,经营进出口业务。

        浙江宇视科技有限公司

           前端IPC摄像机、编解码器、网络存储、网络视频录像机(NVR)、管理平台、客户端等全系列IP监控产品

  • 相关阅读:
    Java程序:从命令行接收多个数字,求和并输出结果
    大道至简读后感
    大道至简第一章读后感Java伪代码
    Creating a SharePoint BCS .NET Connectivity Assembly to Crawl RSS Data in Visual Studio 2010
    声明式验证超时问题
    Error message when you try to modify or to delete an alternate access mapping in Windows SharePoint Services 3.0: "An update conflict has occurred, and you must re-try this action"
    Upgrading or Redeploying SharePoint 2010 Workflows
    Upgrade custom workflow in SharePoint
    SharePoint 2013中Office Web Apps的一次排错
    How to upgrade workflow assembly in MOSS 2007
  • 原文地址:https://www.cnblogs.com/xkk956227639/p/9439209.html
Copyright © 2011-2022 走看看