引言
其实C++基础语法基本上已经学完,早就想开始写C++的博客了,却因为其他各种事情一直没开始。原计划是想讲Linux系统虚拟机安装的,后来考虑了一下还是算了,等Linux学到一定程度再开始相关博客的写作和发表吧。今天写博客想给C++开个头,讲讲关于C++发展史以及C++应用领域之类的东西,再浅谈下如何学习C++,那么就开始我们的内容吧。
什么是C++
C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(objectoriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。
1982年,丹麦计算机科学家,Bjarne Stroustrup博士(咱们C++的祖师爷)在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。
这里想告诉大家一件事,我发现周围人很多人认为C和C++是一个东西,但是我在此声明:
C 和 C++是两个不同的语言!!!
C++发展史
1979年,贝尔实验室的本贾尼等人试图分析unix内核的时候,试图将内核模块化,于是在C语言的基础上进行扩展,增加了类的机制,完成了一个可以运行的预处理程序,称之为C with classes。
C with classes便是C++的前身,C++语言也是在C的基础上一步步扩展过来的,最终形成了一个全新的编程语言。
| 阶段 |
内容 |
C with classes |
类及派生类、公有和私有成员、类的构造和析构、友元、内联函数、赋值运算符重载等 |
| C++1.0 |
添加虚函数概念,函数和运算符重载,引用,常量等。 |
| C++2.0 |
更加完善支持面向对象,新增保护成员,多态继承,对象的初始化,抽象类,静态成员以及const成员函数 |
| C++3.0 |
进一步完事,引入模板,解决多继承产生的二义性问题和相应构造和析构处理 |
| C++98 |
C++标准的第一个版本 |
|