1. C++语言发展史
20世纪60年代, 剑桥大学 Martin Richards为计算机软件人员在开发系统软件时,作为记述语言使用而开发了BCPL语言;
1970年, Bell实验室 Ken Thompson在继承BCPL语言的许多优点的基础上发明了实用的B语言;
1972年, Bell实验室的Dennis Ritchie和Briankernighan在B语言的基础上,作了进一步的充实和完善,设计出了C语言;
1980年:贝尔实验室开始对C进行改进和扩充――带类的C
1983年:取名C++
1994年:制定ANSI(美国国家标准化协会:American National Standards Institute)C++标准草案
1998年:C++的ANSI/ISO标准被投入使用,——标准的C++,这个版本的C++被认为是标准C++。所有的主流C++编译器都支持这个版本的C++,包括微软的Visual C++和Borland公司的C++Builder。
2. C与C++语言的比较
C语言的主要特点是:
1.C语言是一种结构化的程序设计语言,语言本身简洁、 使用灵活方便。既适用于设计和编写大的系统程序,又 适用于编写小的控制程序,也适用科学计算。
2.它既有高级语言的特点,又具有汇编语言的特点。 运算符丰富,除了提供对数据的算术逻辑运算外,还提供了二进制的位运算。并且也提供了灵活的数据结构。 用C语言编写的程序表述灵活方便,功能强大。用C语 言开发的程序,其结构性好,目标程序质量高,程序执行效率高
3、程序的可移植性好。用C语言在某一种型号的计算机上开发的程序,基本上可以不作修改,而直接移植到 其它型号和不同档次的计算机上运行。
4、程序的语法结构不够严密,程序设计的自由度大。 这对于比较精通C语言的程序设计者来说,可以设计出 高质量的非常通用的程序。但对于初学者来说,要能比 较熟练运用C语言来编写程序,并不是一件容易的事情。 与其它高级语言相比而言,调试程序比较困难。
C++是静态类型的,编译型的高级的编程的语言,支持面向对象编程,面向过程编程及泛型编程。
C语言的缺陷是:
C语言对数据类型检查的机制比较弱;缺少支持代码重用的 结构;比较适用于解决小的问题,对于大规模编程,程序模 块之间的协调性差,程序的可重用性、程序的安全、健壮以 及可维护性、可扩充性差,随着软件工程规模的扩大,难以适应开发特大型规模的程序等。
使用随着C语言应用的推广,C语言存在的缺陷或不足也开始慢慢流露出来,并越来越受到大家的关注
注:
为了克服C语言本身存在的缺点,并保持C语言简洁、高效,可移植的特点,C++ 语言又相继引入类型检查,函数及运算符重载、引用、 虚函数等一系列功能,使C++的功能日趋完善。
C是C++的子集, C++不仅包括了整个C,C的全部特征、属性、 优点,还有一些优点:
1.修补的C语言的一些漏洞,提供更好的类型检查机制和编译分析;
2.生成目标程序质量高,程序执行效率较高;
3.提供异常处理机制,简化程序的出错处理;
4.函数可以重载以及使用缺省参数;
5.提供模板机制:类模板和函数模板实现泛型编程;
6.提供继承,派生机制实现代码的重用;
但是两者最大的区别在于C++ 引入了面向对象的编程思想
3.C++特点
1、C++ 是一种静态类型的、编译式的、通用的、 大小写敏感的编程语言,支持过程化编程、面向对 象编程和泛型编程的高级语言。
2、C++不仅拥有计算机高效运行的实用性特征, 同时还致力于提高大规模程序的编程质量与程序设 计语言的问题描述能力。
4. C++与python比较
C++是多范式编程语言。它不仅支持传统的面向过程编程,也支持面 向对象编程,而且引入泛型编程,C++运行效率较高,同时能够比较容 易地建立大型软件,适合对效率要求高的软件,比如机器学习中的神经 网络,大型游戏内核编程等等。
python适合小工具小程序快速开发,无论是网站还是小游戏都非常方便。 但python的脚本的运行效率较低,不适合对运行效率要求较高的程序; Python是一种脚本语言,是解释执行的,不需要经过编译,所以很方便 快捷,且能够很好地跨平台,写一些小工具小程序特别合适。
而C++则是一种需要编译后运行语言,在特定的机器上编译后在特定的 机上运行,运行效率高,安全稳定。但编译后的程序一般是不跨平台的。
5. 应用领域
1、游戏开发领域
目前很多游戏客户端都是基于C++开发的, 三维游戏领域的计算量 是十分庞大的,底层的数学全都是矩阵变换,要想画面精美、 内容丰 富、游戏的实时高,这些高难度需求让我们只能选择C++语言。
2、服务器端开发领域
很多互联网公司的后台服务器程序也都是基于C++开发的,而且大部分都是 linux,unix等类似操作系统。
3、在嵌入式物联网领域
现如今的硬件比以前已经有很大的进步了,存储器的容量也很大, 这时候我们就可以使用C++来编写更为复杂的实时程序。
4、VR及人工智能领域
虚拟显示这个领域一直在发展,目前VR眼镜比较火,需要大量基于这些的 C++开发。人工智能领域需要做一些复杂的运算,需要用c++来开发算法,主要因为其效率高。