- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1-概说C++.ppt
内聚性,即模块内部所涉及的功能越单一越好。这样一旦修改起来,就职责明确,不会因为这个原因那个原因都来找这个模块算帐。 外联性,即模块之间的联系越少越好,联系意味着依赖性,外联性少,模块的独立性就好,独立性意味着自说自话地修改本模块与外界无关。因此就容易编程和修改。 减少外联性还涉及到对数据的分离与归类。将过程体中的数据分离出来,独立地用数据结构去描述其数据和处理,这都是模块划分的原则。 1.8 对象化程序设计(Objectified Programming) 伴随着人类对计算机的依赖性日益增强,程序规模不断扩大,模块数呈指数级递增,模块间的数据传递五花八门,同一程序中模块之间的关系错综复杂,结构化程序设计的规范已经不能保证程序的正确性,可维护性和重用性了。人们开始意识到不可能在语言中内置所有的待解决问题的数据结构,必须让语言具有自建数据结构的能力。 数据结构对于算法,对于程序是如此的重要,但当时大多数语言都没有专门支持对数据结构的直接描述。 在C语言中有一种结构(struct)类型,可以在单纯空间上复合其他数据类型,描述数据的组织,但还是不能避免其数据操作的安全问题。在大规模程序设计中,问题尤其突出。软件发展似有一个不可逾越的极限,因此,在软件产业界曾一度有软件危机之说。 其实浩瀚的编程大军并非每个人都必须要精通问题的每个细节,这就像使用电视机的人并非都要精通其内部的每个细节!我们可用电视机的外壳,把电视机的内部电路和外部使用一分为二。外部使用只需要了解电视机的基本操作方法,内部电路提供电视机的各项功能,两者都需要一个共同的规范——电视机的按钮操作功能。 抽象数据类型就是想要描述这一共同的规范,它描述数据的组织和相关的操作。如果语言能够自由定义数据类型,那么,问题就能化成以抽象数据类型为媒介的使用与实现独立的两部分,因而该语言的解决问题的能力一定就强。衡量一个语言的优劣,能否自定义或者说扩充数据类型是其重要指标。 C++有一个类(class)机制,这正是C语言欠缺的地方。数据类型的本质是数据组织(实现)和其操作(使用)的捆绑性。当对应到具体编程时,用抽象数据类型来界定,就能把编程大军分为两个阵营,一个是专业性极强的,专门实现抽象数据类型的编程,好比生产电视机者;另一个是专门使用抽象数据类型的编程,好比使用电视机者。 要能使抽象数据类型能够维护两大程序员阵营的编程利益,必须要在语言的设计中加入一些语言机制,这些语言机制采用了许多难以想象的技术,实现了数据封装,类型安全等,而且还必然要使代码更容易阅读和维护,否则没有人愿意用。 抽象数据类型的使用,最终像使用基本数据类型那样简单,对应的实体就称之为对象。因此,编程的意义就是算法在对象之间穿梭,或曰针对对象的算法设计。所以其相应的编程就是对象化的编程了。 无论是实现抽象数据类型的程序员群体,还是使用抽象数据类型的程序员群体,他们都以同样的参照在工作,都在做算法设计的工作,所以更加直截了当而又具体的编程模式变成了:程序 = 算法 + 抽象数据类型 面向对象的程序设计(Object-Oriented Programming) 基于对象的程序设计本质上还是过程化的。只是某些数据关系析取出来了,成为一个类,便可以更好地重用了。 类的层次关系也带来了对象的层次关系,它反映了同种操作的异类行为。例如,各电视机的维修操作,不同的型号,有部分维修操作是共同的,如打开后盖,但内部有些部件的操作处理是不同的,电视机之间反映了层次关系。它所反映的是一棵电视机树。 电视机有不同种类,修理方法也不同,那么,电视机在被修理时,必然反映出自己被特殊操作的个性。也即分层之后的对象集合中每个对象行为的个性,这种属性称为对象操作的多态性。 面向对象程序的运行,不再是一个进程硬要全面主宰一切似地完成计算任务的形式,而是面对环境中正在“生活”的对象,不时地请求其服务,以达到完成计算的目的。那些生活中的对象也不是为了某个进程而活着,而是各司其职充当系统的一个部件而已。 所以程序的形式变成了: 程序 =(对象,对象,对象,…) 总之,世界是对象的,我们面向对象而分析,而设计,而编程。这就是面向对象程序设计的着眼点。 1.9 小结 (Conclusion) C++语言适合软件工业化的要求,因而在与其他语言的竞争中脱颖而出。C++是从C进化而来,继承了其高效灵活性。
文档评论(0)