1.2 C++ 简史
前言
C语言的起源
C语言可以说是因为游戏而开发出来的编程语言,在20世纪60年代来自贝尔实验室的肯汤普森在工作之余,自己制作了一个名为太空旅行的游戏,这个游戏只能在mutinix的系统上运行,而在此时贝尔实验室已经放弃了对该操作系统的研发,无奈之下,肯汤普森只能自己开发一个系统来玩这个游戏了(为了一碟醋包了一顿饺子哈哈,天才的行为属实怪异),同时他又喊来了他的一位同事丹尼尔里奇(C语言的开发者),最终在他们的努力下开发出了UNIX系统,同样也衍生出了C语言这个影响深远的编程语言。所以啊,只要自己喜欢就去做吧,说不定能做出伟大的成就呢。
左一 :肯汤普森 左二:丹尼尔里奇
1.2.1 C语言
早期程序员编写程序要用汇编语言(低级语言)直接针对硬件进行操作,但是不同的计算机上的硬件会不同,将同样的代码移植到不同的电脑上无法对计算机的硬件进行调用,必须用不同的汇编语言进行程序的重新编写,为此高级语言应运而生如UNIX,它可以不用考虑不同计算机的硬件的区别,而是运用同样的语言,在利用不同的编译器,转化为不同计算机上的汇编语言,丹尼尔里奇希望有一种语言既能有低级语言的效率、硬件访问能力以及高级语言的通用性与可移植性,C语言应运而生。
1.2.2 C语言编程原理
C语言的产生很大程度上改变了编程思路,当然对于现在的我们可能会认为理所当然。C语言的编程原理可以大致分为三个方面
过程性语言:顾名思义,C语言描述的是一个过程性的东西,从步骤一一直到最后一个步骤;
结构化编程:早期程序执行的路径非常混乱,一个程序中包含许多并不关联的代码,一个变量的调用很难知道它是怎么移动的,为此开发出了结构化编程,将程序划分为许多模块每个模块之间又有非常明确的关系,C语言包含for循环,while循环,if else 语句等等,通过这些分支结构实现了模块的建立。
自顶向下:C语言的逻辑是将大程序划分为小程序,如果划分后程序仍然很大,则会进行继续划分。
1.2.3 面向对象编程
要理解面向对象的语言首先要知道所谓的对象是什么,在C++编程语言中,所谓的对象是具有一类相同属性和行为的一类事物,放在现实世界中,对象可以是人(人有身高,长相等属性,也有吃饭,睡觉等行为),动物等等
我们以烧水为例子:
我这里将烧水这个事件分为三个对象:水壶,火炉,水
代码就可以这样描述:水.放入(水壶)–> 水壶.放置(火炉)–> 火炉.点燃(),当然你也可以分类为不同的对象,给每个对象添加相应的属性与行为,来实现烧水这个事件。
关于过程性语言与面向对象编程详细可以参见:链接: 面向对象编程与过程性编程
1.2.4 C++和泛型编程
详细可以参见:
1.2.5 C++的起源
与C语言一样,C++也同样诞生于贝尔实验室,创造者是比亚尼斯特劳斯特卢普,诞生的原因按照比亚尼自己所说是为了方便他和同事更方便地编写程序,与C语言不同的是C++更注重实用价值,没有特别关心编程思想,不过它仍然引入了OOP(面向对象编程)以及泛函编程。
比亚尼斯特劳斯特卢普