当C++爱上面向对象
第6章
很多第一次进入C++世界的人都会问:C++中的两个加号到底是什么意思啊?
我们知道,C++语言是从C语言发展起来的,C++比C多出的两个加号,实际上是C++的自增操作符,表示C++语言是在C语言的基础上添加了新的内容。如果说其中一个加号代表C++在C的基础上增加了模板、异常处理等现代程序设计语言的新特性,那么另外一个加号则代表C++支持面向对象程序设计的思想。正是这两个加号,让C++语言与C语言有了最本质的区别,尤其是其中的面向对象程序设计思想,使得C++完成了从C语言到C++语言的进化,从而让C++语言既具备了C语言的优秀根基,又能够体现现代程序设计语言的发展趋势,使得C++在多种程序设计语言中经久不衰。
武林中流传这样一句话:“平生不识陈近南,纵称英雄也枉然!”这句话说明了陈近南的名声之响。如果说陈近南是武林中响当当的人物,那么面向对象程序设计思想则是程序设计界名副其实的老大。可以毫不夸张地说,作为一名程序员,如果不知道面向对象程序设计思想,纵称高手也枉然。
既然面向对象程序设计思想的名声如此之大,那么它到底是怎么回事?它跟C++有着怎样的爱恨情仇?它为何会受到这么多人的追捧和欢迎?别着急,且听我一一道来。
6.1.1 自顶向下,逐步求精:结构化程序设计
在学习新的面向对象程序设计思想之前,先来“忆苦思甜”一下,看看在面向对象程序设计思想出现之前的软件是如何设计和开发的。回顾前面章节中曾经学习过的例子:总是先提出问题;然后分析问题的处理流程;接着根据需要把一个大的问题划分为几个小的问题,分成各个子模块;其次解决每个小问题,实现每个模块;最后通过主函数按照某种次序调用这些模块,组织业务逻辑流程,最终解决问题。像这样从问题出发,自顶向下,逐步求精的开发方法,称为“结构化程序设计思想”,如图6-1所示。
图6-1 结构化程序设计的流程