• 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监控产品

  • 相关阅读:
    Setting up SystemC and Eclipse for C++ hardware simulation
    Linux操作系统实用教程(Fedora)
    Creating .deb to install bash script program
    tcp cubic代码分析
    Small chat software based on C++/qml (including source code)
    Is TCP PACING enabled by default on linux?
    tcp: avoid minRTT overestimation from delayed ACKs
    Ubuntu Linux操作系统(微课视频版)
    剑指 Offer 59 II. 队列的最大值
    剑指 Offer 68 II. 二叉树的最近公共祖先
  • 原文地址:https://www.cnblogs.com/xkk956227639/p/9439209.html
Copyright © 2020-2023  润新知