C_C++语言程序设计(西电版)第11章_派生类与继承一教材教学课件.pptVIP

C_C++语言程序设计(西电版)第11章_派生类与继承一教材教学课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教学课件讲义PPT教学教案培训资料医学中小学上课资料

11.3 多重继承 多重继承: 一个派生类具有多个基类。 在多重继承中,公有继承和私有继承对于基类成员在派生类中的可访问性与单继承相同。 玩具 车 玩具车 class 派生类名:继承方式1 基类名1,…,继承方式n 基类名n { 派生类新定义成员 }; 11.3.1 多重继承的声明 例11.9 声明多重派生。 #includeiostream.h class X{ int a; public: void setX(int x) {a=x;} void showX(){ couta=aendl;} }; class Y{ int b; public: void setY(int y) {b=y;} void showY() { coutb=bendl;} }; class Z:public X,private Y{ int c; public: void setZ(int x,int y) { c=x; setY(y); } void showZ() { showY(); coutc=cendl; } }; void main() { Z obj; obj.setX(3); obj.showX(); //obj.setY(4); //obj.showY(); obj.setZ(6,8); obj.showZ(); } 二义性 对基类成员的访问必须是无二义性的。 消除下例中的二义性,可写为 obj.X::f(); //调用类X的f() obj.X::f(); //调用类Y的f() 第十一章 派生类与继承 C/C++语言程序设计 龚尚福,贾澎涛主编 《C/C++语言程序设计》 西安电子科技大学出版社 第十一章 派生类与继承 11.1类的继承与派生 11.2 派生类的构造函数和析构函数 11.3 多重继承 11.4 虚基类 11.5 小结 继承是C++的一种重要机制,是程序可重用与扩充的一个重要方面。这一机制使得程序员可以在已有类的基础上建立新类。从而扩展程序功能、体现类的多态性特征。 11.1 类的继承与派生 自然世界的类概念是抽象的,类的下面还有子类,子类继承父类的各种特征。 面向对象程序设计允许你声明一个新类作为另一个类的派生。 派生类(也称子类)可以声明新的属性(成员)和新的操作(成员函数)。 继承可以让你重用父类代码,专注于为子类编写新代码。 我们称最初的类为基类,根据它生成的类称为派生类(子类),这种派生可以是多层次的。 11.1.1 继承与派生的概念 哺乳动物类 猫类 犬类 波斯猫 安哥拉猫 西施犬 沙皮犬 为什么要使用继承? 例如: class person{ private: char name[10]; int age; char sex; public: void print(); } class employee{ private: char name[10]; int age; char sex; char department[20]; float salary; public: void print(); } 11.1.2 派生类的声明 声明一个派生类的一般格式为: class 派生类名:派生方式 基类名{ //派生类新增的数据成员和成员函数 } “保护成员”是由protected声明的类成员。保护成员不能被外界引用,这点和私有成员类似,但它可以被派生类的成员函数引用。 下面用派生关系改写person和employee类。 基类 class person{ private: char name[10]; int age; char sex; public: void print(); } 派生类 class employee:public person{ private: char department[20]; float salary; public: //… } 派生方式 公有派生 class employee:public person{ //… } 私有派生 class employee:private person{ //… } 保护派生 class employee:protected person{ //… } 问题: 1. B中成员函数f2()能否访问基类A中的成员:f1(),i1,j1? 2. B的对象b1能否访问A的成员? 3.C的成员函数f3()能否访问直接基类B中的成员:f2(),i2,

文档评论(0)

yuzongxu123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档