面向对象编程技术第七章派生与继承.ppt

面向对象编程技术第七章派生与继承.ppt

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

面向对象编程技术第七章派生与继承第1页,共53页,星期日,2025年,2月5日

本章主要内容类的继承与派生的提出派生类的定义与相关概念三种基本继承方式派生类的构造与析构函数派生类的成员标示与访问虚基类赋值兼容规则第2页,共53页,星期日,2025年,2月5日

类的继承与派生的提出问题:我会使用windows98,我需要重新学习XP操作系统吗?我定义了一个描述点的类,如何在定义一个描述矩形的类??现实思维模式..WH事物发展有其延续性!第3页,共53页,星期日,2025年,2月5日

类的继承与派生的提出继承的目的:实现数据、代码的重用。派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有数据、代码进行改造。返回第4页,共53页,星期日,2025年,2月5日

派生类的定义与相关概念定义格式:class派生类名:继承方式1基类名1,…,继承方式n基类名n{成员声明;}注:继承方式公有继承public私有继承private保护继承protected保持已有类的特性而构造新类的过程称为继承。在已有类的基础上新增自己的特性而产生新类的过程称为派生。被继承的已有类称为基类(父类)。派生出的新类称为派生类(子类)。直接父类、直接子类;间接父类、间接子类第5页,共53页,星期日,2025年,2月5日

派生类的定义与相关概念派生(继承)的内部实现过程:添加新成员吸收除构造、析构函数外基类成员改造基类成员第6页,共53页,星期日,2025年,2月5日

派生类的定义与相关概念描述平面的一个点矩形定义简单实例:classpoint{public:point(inta,intb){x=a,y=b;}intgetx()…intgety()…voidmoveto(inta,intb)…private:intx,inty;}classrectangle:publicpoint{public:publicretangle(intx,inty,intwidth,intheigth):point(x,y){w=width;h=height;}privated:intw,h;}第7页,共53页,星期日,2025年,2月5日

派生类的定义与相关概念基类与派生类的对应关系:单继承:派生类只从一个基类派生。多继承:派生类从多个基类派生。多重派生:由一个基类派生出多个不同的派生类。多层派生:派生类又作为基类,继续派生新的类。第8页,共53页,星期日,2025年,2月5日

简化的继承体系图返回第9页,共53页,星期日,2025年,2月5日

三种基本继承方式1.公有继承(public)基类的public和protected成员的访问属性在派生类中保持不变;基类的private成员不可访问(类内)派生类的对象只能访问基类的public成员(类外)第10页,共53页,星期日,2025年,2月5日

classA{public:intx;A(inta,intb){x=a;u=b;}voidprt(){coutpublicx=:xendl;}private:intu;};举例第一步:定义基类:第11页,共53页,星期日,2025年,2月5日

举例第二步:定义派生类classB:publicA{public:B(inta,intb,intc):A(a,b){y=c;}inty;voidprt(){coutA::x=:A::xendl; A::prt();//coutprivatebaseA::u=A::uendl; coutB::y=:yendl; }};此行错误!第12页,共53页,星期日,2025年,2月5日

举例第三步:使用派生类voidmain(){Bb(1,2,3);b.prt();//coutb.uendl;}运行结果:A::x=:1publicx=:1B::y=:31PressanykeytocontinueError!不可直接输出u.第13页,共53页,星期日,2025年,2月5日

派生类中:基类public和protected成员变成private成员;基类private成员不可访问。通过派生类的对象不能访问基类中的任何成员2.私有继承(private)

如何理解?类外的问题第14页,共53页,星期日,2025年,2月5日

classA{public:intx;A(inta,intb){x=a;u=b;}voidprt(){coutpublicx=:xendl;}p

文档评论(0)

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

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

1亿VIP精品文档

相关文档