第6章 继承和派生类.ppt

第6章 继承和派生类.ppt

ID:48796066

大小:290.00 KB

页数:10页

时间:2020-01-25

第6章 继承和派生类.ppt_第1页
第6章 继承和派生类.ppt_第2页
第6章 继承和派生类.ppt_第3页
第6章 继承和派生类.ppt_第4页
第6章 继承和派生类.ppt_第5页
资源描述:

《第6章 继承和派生类.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第二部分C++面向对象程序设计第六章继承和派生类6.1继承概述1.继承继承就是在原有类(称为基类或父类)的基础上,经过适当扩充和完善而建立新的类(称为派生类或子类)。2.类之间的继承关系单重继承ABACBABCACBEFD多重继承多级继承混合继承8.2基类和派生类派生类的定义格式class派生类名:继承方式1基类名1[,继承方式2基类名2,…]{派生类新说明或定义的成员};派生类类体中未定义的成员函数的实现✿继承方式决定了由派生类继承下来基类成员在派生类中的访问属性。它有三种形式:public、private(缺省方式)和protect

2、ed。6.2基类和派生类2.公有(public)继承方式的特点✿从直接基类继承的公有成员和保护成员在派生类中仍保持其原来的状态。✿从直接基类继承的的私有成员在派生类中是不可见的,只能通过从直接基类继承来的公有或保护成员函数访问。如果不考虑继承关系,类的保护成员与类的私有成员是一样的,即对类的保护成员只能在类的成员函数中直接访问。与私有成员不同的是,类的保护成员在派生类中是可见的,而类的私有成员在派生类中是不可见的。在派生类B的成员函数f2()、g2()和h2()中,可直接访问从类A继承下来的k1、f1()、j1和g1(),但不能直接访

3、问i1和h1()。通过派生类B的对象可访问从类A继承下来的k1和f1()。例:公有继承示例。程序说明:6.3派生类的构造函数与析构函数1.派生类构造函数的一般形式构造函数名(总形参表):直接基类初始化表,子对象初始化表,派生类自身数据成员初始化表{派生类构造函数体}✿基类的构造函数和析构函数均不能被派生类继承。派生类的构造函数必须通过调用基类的构造函数对继承下来的基类数据成员进行初始化。在派生类对象生存期结束时,也将调用基类的析构函数释放派生类对象包含的基类的数据成员。2.派生类构造函数的执行顺序1)按定义派生类时各基类的出现顺序,执行

4、各基类的构造函数。2)按定义派生类时各子对象的出现顺序,执行各子对象的构造函数。3)执行派生类自身数据成员的初始化和派生类构造函数的函数体。例派生类示例。3.派生类的析构函数✿派生类析构函数的格式无特殊之处。✿当派生类对象的生存期结束时,系统将自动调用执行派生类、子对象、基类的析构函数,调用顺序是:1)派生类的析构函数2)子对象的析构函数(与创建顺序相反)3)基类的析构函数(与调用构造函数相反的顺序)6.4赋值兼容规则1.赋值兼容规则在公有继承的前提下,基类对象与派生类对象之间的自动类型转换和赋值的规则。2.赋值兼容规则的具体内容✿可以

5、把派生类对象赋给基类对象,反之则不行。例:Baseb1;Derivedd1;b1=d1;✿可以用派生类对象对基类对象或引用进行初始化。例:Derivedd1;Base&r1=d1;✿可以把派生类对象的地址赋给基类对象的指针变量。例:Derivedd1;Base*p=&d1;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。