- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
神州博翔(北京)科技有限公司企业.ppt
关于上机考试 时间: 5月23日上午8点~11点 地点: 计算中心机房、学院机房 助教将在5月22日晚9点后在课程网站公布每个同学机房和坐位号 注意事项 不允许带参考资料、教材、稿纸、U盘、手机等任何可用于作弊的材料和工具,一旦发现即视同作弊 其他被认定为作弊的情况 不按照指定的座位就坐 不在指定的座位上提交答案 作弊的后果非常严重:没有学位 建议每人只带一枝笔 确保至少成功提交一道上机题:只要一道题就可得60分 一道题都没有提交成功,则为0分 题目编号大体上是从易到难(教师们认为如此) 如果剩下的题目都不会做、离考试结束还有很长时间,集中精力做提交成功率高的题目:多数人会做,说明该题目不难 多态的基本概念 继承:子问题之间的相似性。 将每个子问题表达为一个类后,这种相似性有多种表现形式 类成员的交集非空:有共同的属性、服务 通过父类、子类的划分,将共同的属性、服务提取到父类中 成员服务的名称相同,每个类需要自己的算法实现 例如几何图形的面积,对不同类型的几何图形有不同的计算公式 成员服务的名称相同,而且算法的框架也相同,但算法实现的部分细节与具体的子问题(类)相关 例如一组带颜色的几何图形,它们的材质相同,分别使用不同的颜料刷成不同的颜色,每个几个图形的造价由面积和使用的颜料决定fun( area, color),不同类型的几何图形有不同的面积计算公式 多态:以继承关系表达子问题的相似性时,表达类之间成员服务相似性的机制 成员服务的名称和接口(返回值类型、参数列表)相同 成员服务的算法实现不同:包含算法框架相同但部分实现细节依赖具体子问题(类)的情况 多态的基本概念 将每个子问题表达为一个类后,完整的表达子问题的相似性 共同的属性、服务:通过父类、子类的划分,将共同的属性、服务提取到父类中 成员服务的名称和接口(返回值类型、参数列表)相同:每个类需要自己的算法实现 将成员服务提取到父类中 在父类中将成员服务声明为虚函数(virtual) 在每个子类中分别提供该服务的实现代码 成员服务的名称和接口(返回值类型、参数列表)相同、算法的框架也相同:算法实现的部分细节与具体的子问题(类)相关 将成员服务提取到父类中 将算法中与具体子问题(类)相关那部分实现细节定义为父类的虚函数 在每个子类中分别提供相应虚函数的实现代码 class Cat : public Animal { public: virtual void PrintName () { printf( “this is cat %s”, szName); } }; class Home { public: int nAnimals; Animal * pAnimal [20]; void PrintAll () ; void Add( pAnimal * pAnimal); Home ( ) { nAnimals =0; } }; void Home::Add( Animal * Animal ) { pAnimal [ nAnimals ++ ] = Animal; } void Home::PrintAll ( ) { for( int i = 0;i nAnimals; i ++ ) pAnimal[i] -PrintName (); } 若增加了新的 动物 Pig class Pig :public Animal { public: PrintName () { printf( “This is pig %s”,szName); } }; main ( ) { while ( true) { cin szName ; if ( IsDog ( szName) ) MyHome.Add( new Dog ( szName)); else if ( IsCat( szName)) MyHome.Add(new Cat ( szName)); else if ( IsPig ( szName)) MyHome.Add(new Pig ( szName)); MyHome.PrintAll (); } } 思考 “多态”的关键在于通过基类指针或引用调用一个虚函数时,编译时不确定到底调用的是基类还是派生类的函数,运行时才确定。这到底是怎么实现的呢? 提示:请看下面例子程序: class Base1 { public: int i; virtual void Print() { cout Base1:Print ; } }; class Derived : public Base1{ p
您可能关注的文档
最近下载
- 浙江省金砖联盟2024-2025学年高一上学期期中联考语文试卷(含答案).pdf VIP
- 创投行业的介绍.pptx VIP
- 视频处理软件:Adobe Premiere Pro二次开发_(10).转场效果脚本开发.docx VIP
- 上海华虹(集团)有限公司909工程升级改造——华虹集团建.PDF VIP
- 视频处理软件:Adobe Premiere Pro二次开发_(9).常用视频效果脚本开发.docx VIP
- 礼记:大同.ppt VIP
- 视频处理软件:Adobe Premiere Pro二次开发_(8).媒体文件导入导出脚本.docx VIP
- 视频处理软件:Adobe Premiere Pro二次开发_(7).项目和序列管理脚本.docx VIP
- 2024-2025学年七年级语文下学期期末真题分类汇编文言文阅读(湖南专用).docx VIP
- 视频处理软件:Adobe Premiere Pro二次开发_(6).视频处理自动化流程.docx VIP
原创力文档


文档评论(0)