《面向对象程序设计:C++语言描述(原书第2版)--1》面向对象语言-C语言.pdf

《面向对象程序设计:C++语言描述(原书第2版)--1》面向对象语言-C语言.pdf

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
下载 第1章 面向对象编程 C + +语言是一种混合型语言,一方面我们可以把C + + 当做是C语言的扩展和改进,在这种意义上,C + +是 一种过程语言;从另一方面来看,C + +又充分展示了其面向对象的特性(这些特性都是C语言和其他过程语言 所不具备的),因此,C + +又是一种面向对象的语言。本章我们主要讨论与面向对象的编程风格相关的基本概 念及其优点,并探讨相关的程序设计技术。以后的章节将详细讨论用C + +语言进行面向对象程序设计的细节。 1.1 面向过程的编程风格与面向对象的编程风格 1.1.1 面向过程的编程风格 程序由模块 (m o d u l e )构成。设计程序时,可以对这些模块分别进行设计、编码和测试,最后将这些 模块有机地组合在一起形成一个完整的程序。 C + +语言由C语言发展而来。我们说C语言是一种面向过程语言 (procedural language ),是因为在C语言 程序中,一个模块就是一个过程。在过程语言中,由于过程是由赋值语句、测试语句、过程调用等各种命 令语句组成,因此有时候我们也将过程语言称为命令型语言 (imperative language )。和C语言一样,C + +语 言中的函数就是过程。可以将C + +语言当做是改进的C语言来使用。也就是说,当函数构成程序中的模块时, C + +语言就成了一种过程语言。 面向过程程序设计通常采用 自顶向下设计 (top-down design )方法进行设计。在这种方法中,待解问 题和程序设计语言中的过程紧密相联。例如,对于制定制造汽车任务的调度表这件事情,可将待解问题标 记为M a i n P r o b l e m 。在这里我们打算用C语言、P a s c a l语言这类过程语言,或者是当做过程语言使用的 C + +语 言来解决上述问题。如果采用C + +来做的话,我们很快想到可以将待解问题 M a i n P r o b l e m对应到C + + 的过程: m a i n 。但制造汽车太复杂了,如果将所有的任务都加入到 m a i n 中,M a i n P r o b l e m就太复杂了。常用的办法 是将待解问题分解成若干子问题: • 生产底盘。 • 生产引擎。 • 生产动力传动系统。 • 组装。 • 检测配件和整车。 我们可以将上述子问题分别对应到m a i n 调用的函数,即子过程。如同 M a i n P r o b l e m 可以分解成若干子 问题一样,过程m a i n 也可以分解为处理子问题的各种子过程。当然这些子问题可以继续分解。这种分解就 反应为子过程的分解(如图 1 - 1所示)。不断地运用这种 自顶向下设计方法,即 函数分解法 (f u n c t i o n a l d e c o m p o s i t i o n ),直到每一个子问题都足够简单,使得相应的子过程很容易处理。当采用这种高度模块化的 方式来设计 C + +程序时,C + +程序的基本过程(即函数)就会足够简单和短小,甚至可以只包含一条语句 (例如,只包含一条r e t u r n 语句)。 自顶向下设计的优点是既直观又有条理,有很多复杂问题是采用这一方法解决的。但这种方法也有致 命的缺陷,特别是在面对软件维护 (software maintenance )问题时,包括软件系统的测试、调试和升级等。 有经验的程序员都知道,软件开发最困难的时期并不是第一次设计代码的时候,而是后面的修改阶段,因 为程序出现了毛病(“受到细菌的感染”),程序的需求发生了改变,程序需要提高执行效率,等等。我们仍 然用制造汽车为例来说明这个问题。假设需要对 M a i n P r o b l e m 的解决方案进行重大改变,甚至于m a i n 都需要 2使用面向对象程序设计—C++语言描述(原书第2版) 下载 改动。如我们要给每一个在m a i n 中调用的子过程增加一个参数,以便传递某个额外的信息。同时每个子过 程又要将这个信息传递给自己的子过程,直到如图 1 - 1所示结构中延续到最后,这种现象就是我们熟知的串 联改变。串联改变是指对某个过程(如 m a i n )的变动会传递到其子过程中,并由这些子过程继续往下延续 直到所有的分解层次。这种威胁并可能愚弄维护编程活动!

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8135026137000003

1亿VIP精品文档

相关文档