1.1.2 C++(www.cppentry.com):下一个阶段
从20世纪70年代晚期到80年代早期,C语言成为主要的计算机编程(www.cppentry.com)语言,并且在今天仍然被广泛使用。既然C语言是一种成功并且有用的语言,您可能会好奇为什么还需要其他语言呢。答案是复杂性。纵观编程(www.cppentry.com)的历史,正是程序复杂性的不断增加驱动了管理复杂性的更好方式的需要。C++(www.cppentry.com)是对这一需求的响应。为了更好地理解为何管理程序的复杂性成为创建C++(www.cppentry.com)的基础,我们来分析下面的内容。 自从发明计算机以来,编程(www.cppentry.com)方式发生了很大的变化。例如,计算机刚出现时,编程(www.cppentry.com)是通过面板用手工打孔的方法输入二进制机器指令实现的。对于那些只有几百行指令的程序,这种方法可以工作。随着程序的增长,引入了汇编语言,通过使用机器指令的符号化表示,程序员可以编写更大、更复杂的程序。随着程序的不断增长,出现了高级语言,为程序员提供了更多用于处理复杂性的工具。 当然,第一种广泛使用的高级语言是FORTRAN。虽然FORTRAN迈出了令人印象深刻的第一步,但是它很难开发出条理清晰且易于理解的程序。20世纪60年代诞生了结构化编程(www.cppentry.com)(structured programming)。这种编程(www.cppentry.com)方法被C语言这类语言采用。通过使用结构化编程(www.cppentry.com)语言,程序员第一次能够比较容易地编写出相对复杂的程序。但是,即使是使用结构化编程(www.cppentry.com)方法,一旦项目达到一定的规模,它的复杂性就会超出程序能够管理的范围。到了20世纪80年代早期,许多项目超出了结构化方法的极限。为了解决这一问题,发明了一种新的编程(www.cppentry.com)方法,称为面向对象编程(www.cppentry.com)(Object-Oriented Programming,OOP)。面向对象编程(www.cppentry.com)将在本书后面详细讨论,但是在此先给出它的简短定义:OOP是一种编程(www.cppentry.com)方法论,通过使用继承、封装和多态来帮助组织复杂的程序。
通过分析可以看出,尽管C语言是世界上最伟大的编程(www.cppentry.com)语言之一,但是它处理复杂性的能力也是有一定限度的。一旦程序规模超过特定的临界点,就会变得非常复杂以至于难以从整体上进行把握。虽然根据程序的自身特征以及程序员的不同,发生这种情况的准确界限会有所不同,但总是存在这样一个门槛,一旦超过这个门槛,程序就变得难以管理。C++(www.cppentry.com)添加了能够突破这一界限的特征,允许程序员理解并管理更大的程序。 C++(www.cppentry.com)语言是由Bjarne Stroustrup于1979年发明的,当时他在位于美国新泽西州Murray Hill的Bel1实验室工作。Stroustrup最初将这种新语言称为“带类的C”。但是,在1983年他将名称修改为C++(www.cppentry.com)。C++(www.cppentry.com)通过添加面向对象特征对C语言进行了扩展。因为C++(www.cppentry.com)构建于C语言的基础之上,所以它包含了C语言的全部特征、特性以及优点。这是C++(www.cppentry.com)作为一种语言能够成功的关键原因。发明C++(www.cppentry.com)语言不是试图创建一种全新的编程(www.cppentry.com)语言,相反,它是对已经取得极大成功的C语言的改进。