- 1、本文档共89页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
养猪场v4.0图示 面向对象养猪场 养猪场v3.0图示 +工作() 喂猪机器人 +吃() 大白猪 +吃() 长白猪 工作 { 对每一只猪 { 猪--〉吃 } } +吃() 猪 1 * 养猪场V4.0 案例总结 养猪场V4.0版系统中,喂猪机器人完全是针对公共基类接口进行编程的; 当系统添加一个新的类型时,只需要添加新类型的代码,而系统中原有的代码不需要做任何的改变就可以适应新的需求—这完全符合开闭原则。 那用代码,我们怎么实现呢? ---虚函数 #include iostream.h class pig { public: virtual void eat(){}; }; class BigWhitePig:public pig { public: void eat(){coutBigWhitePig,eat!\n;} }; class LongWhitePig:public pig { public: void eat(){coutLongWhitePig,eat!\n;} }; class BoZhongPig:public pig { public: void eat(){coutBoZhongPig,eat!\n;}; }; class Robot { public: void work(pig *objPig){objPig-eat();}; }; void main() { pig *ptr; BigWhitePig bigWhitePig; LongWhitePig longWhitePig; BoZhongPig boZhongpig; Robot robot; ptr=bigWhitePig; robot.work(ptr); ptr=longWhitePig; robot.work(ptr); ptr=boZhongpig; robot.work(ptr); } 程序运行结果 多态性是面向对象程序设计语言的又一重要特征,它是指不同对象接收到同一消息时会产生不同的行为。继承所处理的是类与类之间的层次关系问题,而多态则是处理类的层次结构之间,以及同一个类内部同名函数的关系问题。简单地说,多态就是在同一个类或继承体系结构的基类与派生类中,用同名函数来实现各种不同的功能。 * main.cpp Shape *arrayOfShapes[ 3 ]; arrayOfShapes[ 0 ] = point; arrayOfShapes[ 1 ] = circle; arrayOfShapes[ 2 ] = cylinder; cout Virtual function calls made off base-class pointers\n; for ( int i = 0; i 3; i++ ) virtualViaPointer( arrayOfShapes[ i ] ); cout Virtual function calls made off base-class references\n; for ( int j = 0; j 3; j++ ) virtualViaReference( *arrayOfShapes[ j ] ); return 0; } Point: [7, 11] Circle: [22, 8]; Radius = 3.50 Cylinder: [10, 10]; Radius = 3.30; Height = 10.00 Virtual function calls made off base-class pointers Point: [7, 11] Area = 0.00 Volume = 0.00 Circle: [22, 8]; Radius = 3.50 Area = 38.48 Volume
您可能关注的文档
- 第29 课 穿这件还是穿那件课程.ppt
- 第29讲 图表作文课程.ppt
- 如何使用Gene Ontology课程.ppt
- 第29课 百花齐放 百家争鸣课程.ppt
- 第29课时 与圆有关的位置关系课程.ppt
- 第30课 文教体育事业欣欣向荣课程.ppt
- 如何使用Googlelinkedin营销课程.ppt
- 第31章 开放经济:基本概念课程.ppt
- 第32讲 建设项目信息管理课程.ppt
- 第32课时 梯形课程.ppt
- 全国青少年(毒品预防教育)知识考试题库与答案 .pdf
- 2023年山东胶州市领军计划自主招生历史试题真题(含答案详解) .pdf
- 【人教版八年级生物】第六单元 第二章 认识生物的多样性 .pdf
- 冀人版-第三单元 电(提升卷)-四年级科学上册单元培优进阶练.docx
- 新郑市事业单位统考真题 .pdf
- 冀人版-第三单元动物的生长与繁殖(单元测试)四年级下册科学.docx
- CLCN4基因变异相关癫痫的临床表型及基因变异特点 .pdf
- 【《“双减”背景下小学中年级语文自主阅读策略探究》6500字】 .pdf
- 高一语文开学第一课+课件+2024-2025学年统编版高中语文必修上册 .pdf
- 密山市事业单位统考真题 .pdf
文档评论(0)