C++程序设计教程(第2版)
上QQ阅读APP看书,第一时间看更新

1.1 C++简介

在计算机编程语言中,C++有着独特的优势,它既兼容C语言,保留了C语言所有优点,又增加了面向对象的机制,从而成为一种功能强大、高效、应用广泛的语言。下面将从C++发展史开始,带大家认识C++。

1.1.1 C++的发展史

C++是由Bjarne Stroustrup(比雅尼·斯特劳斯特鲁普)博士在贝尔实验室工作期间开发的。最初C++被称为new C,后来为了体现它是一种带类的面向对象语言,将其改名为C with class。直到1982年,Bjarne Stroustrup博士将C with class命名为C++。

C++从诞生至今,其发展历史大致可以分为三个阶段。

第一阶段:从C++出现到1995年。这一阶段C++基本上是传统类型上的面向对象语言,并且依靠接近C语言的效率,在计算机语言中占据着相当大的比重。在这期间Bjarne Stroustrup博士完成了经典巨著The C++Programming Language第1版的编写。

第二阶段:从1995年到2000年。这一阶段由于STL库和后来的Boost库等程序库的出现,泛型编程设计在C++中的比重越来越大。同时,由于Java、C#等语言的出现,C++受到了一定的冲击。

第三阶段:从2000年至今。以Loki、M PL等程序库为代表的产生式编程和模板元编程的出现,使C++迎来了发展史上的又一个高峰。这些新技术和原有技术的融合,使C++成为当今主流程序设计语言中一门非常复杂的语言。

1.1.2 C++的特点

C++语言是在C语言的基础上发展而来的,它具有以下特点。

1.兼容C语言

C++既保留了C语言的所有优点,又克服了C语言的缺点。相比于C语言,C++的编译系统能检查出更多的语法错误,代码安全性更高。除此之外,C++环境可以运行绝大多数C程序,C++程序可以兼容众多C语言编写的库函数。

2.支持面向对象编程

C++引入了面向对象的概念,具有诸如Java、PHP、Python等面向对象编程语言的特性。如果使用C++语言开发人机交互类型的应用程序,相比C语言来说,会变得更为简单、快捷。同时,C++利用类的层级关系进行编程,使得扩展接口功能变得更加简便。

3.拥有丰富的库

利用C++中的标准模板库STL,如set、m ap、hash等容器,可以快速编写代码。除了标准模板库,C++还有非常多的第三方库,如Boost库、图形库QT、图像处理库OpenCV、机器学习库Tensorflow、线性代数库Eigen、游戏库OpenGL等,这些优秀的库为企业的项目开发提供了非常大的支持。

4.支持嵌入式开发

在嵌入式开发领域,C++的地位举足轻重。例如,智能手表、机器人这些智能设备,无论是底层驱动还是上层应用开发,都离不开C++语言的支持。

5.类型转换安全性更强

C++和C语言属于强类型语言,C语言中可以进行强制类型转换,相对自由灵活。但C语言类型转换安全性比较低,为了兼容C语言C++提供了更安全的类型转换方式,转换安全性更强。

6.支持垃圾回收机制

大多数面向对象编程语言具有垃圾回收机制。早期的C++语言不具备垃圾回收机制,这意味着申请的内存资源在使用完成后,需要程序员自己释放。直到C++11标准诞生,提出了智能指针新特性,实现了内存资源的自动管理,使得指针的使用更加灵活,并避免了内存泄漏问题。