- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GIS程序设计七章
* 7.1 多态性概述 7.2 虚函数 7.3 抽象类 7.4 综合实例 第 7章多态与虚函数 一种语言若不支持多态,则不能称之为面向对象的程序设计语言。本章要讨论的多态性与前面我们介绍的继承、封装等一样,都是面向对象程序设计语言中的重要特征。多态性与继承是密不可分的,本章所讲的多态性指在继承类中与基类同名、同参数、同类型函数的不同行为。 一般来说,C++语言支持两种不同类型的多态:编译时多态和运行时多 态。本章讨论的内容主要集中在运行时多态及其实现。 多态就是指不同的对象接受到相同的消息时产生不同的响应动作,即对应 相同的函数名,却执行了不同的函数体(当然,这些函数体还是要事先定义好,以便调用)。 种把程序标示符与和一个存储地址相联系的过程,称为联编(binding,又译为绑定)。 【 7.1 多态性概述】 静态联编:指这种联编在编译阶段完成的,由于联编过 程是在程序运行前完成的,所以又称为早 期联编。静态联编能够实现编译时多态。 动态联编:指这种联编要在程序运行时动态进行,所以 又称为晚期联编。动态联编可以实现运行时 多态。 要实现静态联编,在编译阶段就必须确定标示符(如函数名)和代码之间的对应关系。 重载多态:是函数重载。 强制转换多态:不同类型的数据类型进行 混合运算时要进行的强制 类型转换。 包含多态:指在基类及其派生类族中同名 函数的不同函数实现,及其在 运行时的不同响应。 参数多态:在后面章节中进行探讨。 编译时多态和运行时多态的严格划分 都是通用多态 都是专用多态 【 7.1 多态性概述】 支持两种编译方式 EXAMPLE7_01.H #ifndef EXAMPLE7_01_H #define EXAMPLE7_01_H #include iostream.h class Base //声明基类Base { private: double dblBaseTest; public: Base(double dblInitial=0.0){dblBaseTest=dblInitial;} ~Base(){} void setBase(double dblSet){dblBaseTest=dblSet;} double getBase(){return dblBaseTest;} void display(); //用于显示基类中的私有数据成员 }; 例 7-1 通过基类指针访问派生类对象 【 7.2 虚函数】 class FromBase:public Base //从基类Base以公有派生类FromBase { private: double dblFromTest; public: FromBase(){} FromBase(double dblInitBase,double dblInitFrom):Base(dblInitBase) {dblFromTest=dblInitFrom;} ~FromBase(){} void setFrom(double setFrom){dblFromTest=setFrom;} double getFrom(){return dblFromTest;} void display(); //显示派生类的私有数据成员 }; #endif //类的声明结束 EXAMPLE7_01.CPP //类的实现开始 #include iostream.h #include EXAMPLE6_01.H void Base::display() { 通过基类指针访问派生类对象 例 7-1 cout″Now in Base class, we display its private number:″endl; cout″dblBaseTest :″dblBaseTestendl; } void FromBase::display() { cout″Now in FromBase class, we display its private number:″endl; cout″dblFromTest :″dblFromTestendl; } /
您可能关注的文档
最近下载
- 义务教育版(2024)四年级全一册第7课《数字编码随处见》.pptx VIP
- 《工程勘察定向钻探技术规程》.pdf VIP
- 多联机空调施工组织设计方案.docx VIP
- 计算机应用基础(Windows10+WPSOffice 2019)中职全套教学课件.pptx
- DELL EMC 存储设备健康检查报告(模板).doc VIP
- 金融知识竞赛题库第四部分中国人民银行法试题及答案.doc VIP
- 2025-2030年中国猪苓中药材行业现状调查及投资前景预测研究报告.docx
- 大疆无人机公司介绍.ppt VIP
- 防酸碱劳保培训课件.pptx VIP
- GBZT 181-2024 建设项目放射性职业病危害评价报告编制标准.pdf VIP
文档评论(0)