欢迎来到天天文库
浏览记录
ID:62015727
大小:403.50 KB
页数:48页
时间:2021-04-12
《第11讲-继承与派生(2).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C++面向对象程序设计普通高等教育“十一五”国家级规划教材中国高等院校计算机基础教育课程体系规划教材谭浩强编著湖南工业大学计算机与通信学院9/8/20211第11讲继承与派生11.1授课内容继承与派生的应用。主要内容:1.多重继承;2.虚基类;3.继承与派生的应用。9/8/20212第11讲继承与派生11.2授课要求(1)理解多重继承的含义、定义方法和实现;(2)理解虚基类及其作用。9/8/20213第11讲继承与派生11.3授课重点1.重点是多重继承和派生类的应用。11.4授课难点1.难点是派生类的应用。9
2、/8/202141.多重继承前面讨论了单继承,即一个类是从一个基类派生而来的。实际上,常常有这样的情况:一个派生类有两个或多个基类,派生类从两个或多个基类中继承所需的属性。多重继承:允许一个派生类同时继承多个基类。这种行为称为多重继承(multipleinheritance)。9/8/20215(1)声明多重继承的方法方法:在单继承的基础上,依次列出多个基类。比如:如果已声明了类A、类B和类C,可以声明多重继承的派生类D:classD:publicA,privateB,protectedC{类D新增加的成员}
3、D按不同的继承方式的规则继承A,B,C的属性,确定各基类的成员在派生类中的访问权限。9/8/20216(2)多重继承派生类的构造函数多重继承派生类的构造函数形式与单继承时的构造函数形式基本相同,只是在初始表中包含多个基类构造函数。如:派生类构造函数名(总参数表列):基类1构造函数(参数表列),基类2构造函数(参数表列),基类3构造函数(参数表列){派生类中新增数成员据成员初始化语句}派生类构造函数的执行顺序为:先调用基类的构造函数,再执行派生类构造函数的函数体。调用基类构造函数的顺序是按照声明派生类时基类出现
4、的顺序。排列顺序任意9/8/20217(2)多重继承派生类的构造函数例1(P176的例5.8)声明一个教师(Teacher)类和一个学生(Student)类,用多重继承的方式声明一个研究生(Graduate)派生类。教师类中包括数据成员name(姓名)、age(年龄)、title(职称)。学生类中包括数据成员name1(姓名)、age(性别)、score(成绩)。在定义派生类对象时给出初始化的数据,然后输出这些数据。9/8/20218(2)多重继承派生类的构造函数#include#incl
5、udeusingnamespacestd;classTeacher//声明类Teacher(教师){public://公用部分Teacher(stringnam,inta,stringt)//构造函数{name=nam;age=a;title=t;}voiddisplay()//输出教师有关数据{cout<<″name:″<6、name;intage;stringtitle;//职称};12139/8/20219(2)多重继承派生类的构造函数classStudent//定义类Student(学生){public:Student(charnam[],chars,floatsco){strcpy(name1,nam);sex=s;score=sco;}//构造函数voiddisplay1()//输出学生有关数据{cout<<″name:″<7、:″<8、),wage(w){}voidshow()//输出研究生的有关数据{cout<<″name:″<
6、name;intage;stringtitle;//职称};12139/8/20219(2)多重继承派生类的构造函数classStudent//定义类Student(学生){public:Student(charnam[],chars,floatsco){strcpy(name1,nam);sex=s;score=sco;}//构造函数voiddisplay1()//输出学生有关数据{cout<<″name:″<7、:″<8、),wage(w){}voidshow()//输出研究生的有关数据{cout<<″name:″<
7、:″<8、),wage(w){}voidshow()//输出研究生的有关数据{cout<<″name:″<
8、),wage(w){}voidshow()//输出研究生的有关数据{cout<<″name:″<
此文档下载收益归作者所有