1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中间件_3

传统的结构化开发方式是一种自顶向下的开发方式,即将系统分解成独立的模块,然后逐一实现这些模块的功能。在这种结构化的开发方法中,完整的系统只能在开发完成后才能呈现全貌。如果在开始编程时发现设计中存在缺陷,那么整个设计将被重新构造。 在结构化的开发方法中,数据与功能是分离的。若系统的数据结构发生改变,必然导致程序必须进行很大的修改。 面向对象的方法以一种更为直观的方法分析和构造系统,它将整个系统抽象并模型化,让人们能更好地了解整个系统,使得在设计时就能发现其中可能存在的问题。 在面向对象的开发方法中,数据与相关的功能是捆绑在一起的,并可很好地表示为系统中相对独立的对象。 独立是指对象封装了实现细节,对外提供访问接口。只要访问接口不变,其实现的修改不影响系统中的其它对象。 面向对象技术的概念 对象(Object)是具有一些状态和行为的实体,其内部实现是不可见的。对象的状态反映对象所处的情形,通常由对象的属性值来表示;对象的行为定义对象如何运作和反应,通常表示为对象的接口(Interface)、函数(Function)或方法(Method)。 类(Class)是一系列相近对象的一般性定义,它提供了对象属性和行为的规范。 面向对象技术的概念 继承(Inheritance)是基于原有对象创建新对象的代码重用机制,它定义了一个类共享一个或多个其它类的结构和行为的关系。 封装(Encapsulation)就是隐藏对象的具体实现细节,只能通过所定义的界面来访问和操作对象的数据。 面向对象技术的概念 抽象(Abstract)是指从一组不同的实体中提取出公共特性(抽象类)的过程。抽象类部分定义了类的数据结构和行为,且这些数据结构和行为通常无具体的实现。而完整的数据结构和行为以及它们的具体实现则由其子类进一步确定。因此,抽象类通常不能被实例化为一个对象。 面向对象技术的概念 多态(Polymorphism)是指对同一界面或行为可以有多种不同的实现的能力。使用单一的消息可以调用不同的行为。例如由形状类派生出的矩形和圆形类,都具有“绘制”方法。调用矩形对象的绘制方法将画出一个矩形,而调用圆形对象的绘制方法将画出一个圆形,同样是“绘制”方法,不同的类有不同的实现。 面向对象技术的概念 以上几个概念既是对面向对象的定义,也是对象的特性。 从面向对象的编程语言来看,面向对象就是对象、类和继承的组合; 从面向对象的系统特性来看,面向对象应包括封装、抽象和多态。 虚函数 运行时间多态性是通过使用派生类和虚函数来实现的。 一个虚函数即是一个在某基本类中被说明为virtual并在一个或多个派生类中被重定义的函数。 虚函数 示例: #include iostream.h class Base { public: virtual void who() { cout Base\n; } }; 虚函数 class first_d : public Base { public: void who () { cout First Derivation\n; } }; 虚函数 class second_d : public Base { public: void who () { cout Second Derivation\n; } }; 虚函数 当用一个指向派生类的某对象的基本类指针访问一个虚函数时,C++根据指向的对象类型确定在运行时间调用哪一个函数。因此,当指向不同的对象时,就可以执行该虚函数的不同代码。 虚函数 main(void) { Base base_obj; Base* p; first_d first_obj; second_d second_obj; p = base_obj; p -who(); 虚函数 p = first_obj; p - who(); p = second_obj; p - who(); return 0; } 输出: Base First derivation Second derivation 对象的内存分布图 vptr指针和vtab表 class A { private : int value; public: virtual void Func1(void); virtual void Func2(void); }; 对象的内存分布图 class B:public A { private : int value1; public: virtual void Func1(void); }; 虚函数 说明: (1) 一个基本类指针可以被用于访问

文档评论(0)

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

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

1亿VIP精品文档

相关文档