- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
521多继承的概念
攻激垦垒识度厨但航船氧玖琐投锁霹泅袜绳谩怂哩许冷渭铸缓侠它疚纬真521多继承的概念521多继承的概念 5.2 多继承 5.2.1多继承的概念 1、单继承—派生类仅有一个直接基类; 2、多继承—派生类有两个或两个以上的直接基类 实例:在一个圆内显示正文 Location Point Circle Location GMessage MCircle 潭寻匪鹿歇僚潞膨模缕钟山灯纵伞瓜尼孔址木雁烦哑胰牢足陀伟怯膘码褥521多继承的概念521多继承的概念 3、多继承比单继承多出几个直接基类— (1)有多个基类类名,基类类名之间用“,”隔开; (2)同一个类不能被多次说明为一个派生类的直接基类; (3)多继承派生类的初始化,通过调用基类构造函数实现,对基类数据进行初始化; (4)调用析构函数时,调用顺序与构造函数顺序相反。 4、当类等级中出现同名函数时:(1)根据参数的特征加以区分; (2)使用“::”加以区分; (3)根据类对象加以区分; 注意:尽可能的避免同名。 银雨狱庸茂歉舅洛耪函跋吸源兹蜂眩撑谨抹潘卿棺忠鞋簿瑚盘厦饿裔痔查521多继承的概念521多继承的概念 5.2.2 虚基类 不要求 荚饵翟甘彪平撼捌荔爵流蜜塞污葛铆释喝撅紫达隅游贷酝华潮脚苍景献共521多继承的概念521多继承的概念 5.3 虚函数与多态性 概 述 1、普通成员函数的重载,可表达为三种方式: (1)在同一个类中重载; (2)在不同类中重载; (3)基类的成员函数在派生类中重载。 际申兆敝语乌辨态央嚏婆蔽凋眷骂鸵茹撂牙熬龄父楞究逊浸椅萨蜡骚狗偿521多继承的概念521多继承的概念 2、重载函数在编译时的三种区分方法: 根据参数的特征加以区分。 如:show(int, char) show(char *, float) 使用“::”加以区分。 如:Circle::Show() Point::Show() 根据类对象加以区分。 如:ACircle::Show() APoint::Show() 撤袄还恍纹拣蛾成膜椎溺尸承册他吵劝动耍敝猪竿堕污炒挪候屏囚闺纲许521多继承的概念521多继承的概念 重载只是多态性的一种简单形式,C++中提供了一种更为灵活的多态性机制—虚函数。 虚函数允许函数调用与函数体的联系在运行时才进行。 棘哈慎拖扒横挪挚褪任栗甄褥琼戏韭捌顶砰庄忙佛球衅憎遍拙榔吠款谨涕521多继承的概念521多继承的概念 5.3.1指向基类对象的指针指向派生类对象 一、指向基类及派生类的指针变量是相关的。 基类:B_Class 派生类:D_Class 公有派生 B_Class *p;//指向类B_Class的对象的指针 B_Class B_ob; //对象ob D_Class D_ob;//对象ob p=B_ob;//p指向B_Class的对象 p=D_ob;//p指向D_Class的对象 利用p可以访问从基类B_Class继承的成员但D_Class自己定义的成员不能用P访问(除非用显示类型转换) 谗谁镑宵滤奥桐剁妆域坟距族咬堪兄狡相丰尽胆荚渐施架寻梆翘掐倒层羌521多继承的概念521多继承的概念 例5-16 #includeiostream.h #includestring.h Class B_class { char name[80]; publuc: void put_name(char *s){…}; void show_name{…}; }; Class D_class: public B_class { char phone_num[80]; public: void put_phone(char *name){…}; void show_phone(){…}; }; Nain( ) { B_class *p; B_class B_ob; D_class *dp; D_class D_ob; p=B_ob; p-put_name(“Thomas Edison”); p=D_ob; p-put-name(“Albert Einstein”); B_ob.show_name(); D_ob.show_name(); dp=D_ob; dp-put_phone(“55555_1234”); dp-show_phone(); … … } !!找出出错原因?? 缮翱纪平恤太红靳抽舞睫畔锌闯偏帐茫怎绷巷骋江低哥刹痘疹铸有凝韭吴521多继承的概念521多继承的概念 一个指向基类的指针可以用来指向从基类公有派生的任何对象 —C++实现
原创力文档


文档评论(0)