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

原文地址:https://www.cnblogs.com/xkk956227639/p/9439209.html