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