C++的概述
1、C++概述
1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。1983年该语言被正式命名为C++。自从C++被发明以来,它经历了3次主要的修订,每一次修订都为C++增加了新的特征并作了一些修改。第一次修订是在1985年,第二次修订是在1990年,而第三次修订发生在c++的标准化过程中。。
在20世纪90年代早期,人们开始为C++建立一个标准,并成立了一个ANSI和ISO(Intemational Standards Organization)国际标准化组织的联合标准化委员会。该委员会在1994年1月25曰提出了第一个标准化草案。在这个草案中,委员会在保持Stroustrup最初定义的所有特征的同时,还增加了一些新的特征。
在完成C++标准化的第一个草案后不久,发生了一件事情使得C++标准被极大地扩展了:Alexander stepanov创建了标准模板库(Standard Template Library,STL)。STL不仅功能强大,同时非常优雅,然而,它也是非常庞大的。在通过了第一个草案之后,委员会投票并通过了将STL包含到C++标准中的提议。STL对C++的扩展超出了C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。
委员会于1997年11月14日通过了该标准的最终草案,1998年,C++的ANSI/IS0标准被投入使用。通常,这个版本的C++被认为是标准C++。所有的主流C++编译器都支持这个版本的C++,包括微软的Visual C++和Borland公司的C++Builder。
2、C++的优缺点
a、与C语言相比
1、优点
一、C++较C语言来说,使用比较方便,更加注重的是编程思想。
二、C++较C语言来说,拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类
三、C++对C语言的改进最主要表现在对面向对象的扩充上。C语言是一种面向过程的结构化的语言,而C++是面向对象的语言,它在C语言的基础上增加了面向对象的机制,使得C++比C语言更加完善和实用。
四、在C++中,声明语句可以穿插于语句之间。
2、缺点
一、C++的语法非常庞大复杂,而C语言的语法则比较简单。
二、
b、与java相比
1、优点
一、C++可以直接插入汇编 能直接操控底层硬件,处理比较实时。
二、C++在继承和派生上比java更灵活。
三、C++的编译的程序可以直接运行,但是java需要安装JRE才可以。
四、C++的运行速度要比java快。
五、C++较java更为抽象,类,函数的编写可以与类型无关,只需要关心逻辑。
2、缺点
一、Java因为是把程序编译为字节码,运行时需要JVM把字节码再翻译为机器码,所以它可以跨平台,一次编译到处运行。但是C++不支持跨平台。
二、java的标准库比较完整,C++只有一个STL,实际上C++编程中需要大量调用第三方的库。
三、java后面有一些大型的商业公司支持,更新速度快,而C++只有一个标准委员会,上一个版本还是C++98.
四、java原生支持多线程,C++仅靠标准库是做不到的。
3、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..嵌入式系统。