欢迎来到天天文库
浏览记录
ID:58713180
大小:291.50 KB
页数:63页
时间:2020-10-04
《第1617章1继承多态虚函数ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第16-17章-1继承、多态、虚函数16.1继承的概念16.2继承的工作方式16.3派生类的构造16.4继承与组合16.5多态性16.6多态的思考方式16.7多态性如何工作16.8不恰当的虚函数16.9虚函数的限制16.10类的冗余16.11克服冗余带来的问题16.12类的分解16.13抽象类16.14由抽象类派生具体类16.15纯虚函数的需要性17.1多继承如何工作17.2继承的模糊性17.3虚拟继承17.4多继承的构造顺序17.5继承的访问控制17.6保护继承与私有继承1继承过程是从一个类派生出一个新类的过程。派生出来的新类称为派生类或子类;原
2、有的类称作基类或父类,子类继承父类的属性和操作。派生类同样可以作为基类继续派生新的子类,这样就形成了类的层次结构。1.继承与派生的概念继承是面向对象程序设计中支持代码重用的重要机制。通过继承,程序员可以在原有类的基础上派生出新类,新类将共享原有类的属性,并且还可以添加新的特性。继承(inheritance):一个新类从已有类那里获得其已有特性(属性、行为)派生(derivation):在已有类的基础上新增自己的特性而产生新类的过程2基类和派生类若一个类C2从另一个类C1扩展而来,则称C2为派生类(derivedclass),C1为基类(basecl
3、ass)。基类也称为父类(parentclass),派生类也称为扩展类(extendedclass)或子类(childclass)。一个派生类继承了其基类的所有数据成员和成员函数(构造函数和析构函数除外),还可以增加新的数据成员和函数,从而使派生类更具特殊化。用指向基类的箭头表示两个类之间的继承关系。C1C2C3C1为基类C2、C3为C1的派生类3计算机类台式机类笔记本类床沙发沙发床a)单继承b)多继承图单继承与多继承一个基类可以派生出多个派生类,一个派生类也可以由多个基类派生而来。从一个基类派生出一个派生类的过程称为单继承;从多个基类派生出一个派
4、生类的过程称为多继承(多重继承)。4交通工具火车汽车飞机轮船卡车旅行车小汽车工具车轿车面包车交通工具分类层次图(单继承)5计算机系人员教职工教务人员学生教师行政管理人员本科生系主任研究生计算机系组成人员的继承关系层次图(多继承)6继承的工作方式——举例(ch16_1.cpp,p350)7通过单继承派生一个类的一般形式为class派生类名:派生类型基类名{声明派生类新成员};声明一个派生类,采用不同派生类型,从基类继承而来的成员的访问权限在派生类中也有所不同。用关键字public、private或protected指定,若省略,系统默认为私有派生。该
5、基类必须在声明该派生类之前已经声明,否则会导致编译错误。2.单继承8派生类的继承方式为公有时,基类各成员在派生类中的访问权限:公有成员:仍为派生类的公有成员保护成员:仍为派生类的保护成员私有成员:派生类不能访问,为基类私有派生类的成员只能访问基类中的public/protected成员,不能访问private成员。派生类的对象(在派生类外)只能访问基类中的public成员。公有继承基本保持了基类的访问属性,因此使用较多。(1)公有继承(公有派生)基类的公有成员和保护成员被派生类继承过来,作为派生类的公有成员和保护成员;基类的私有成员在派生类中不能直
6、接使用。简述9intmain(){Bb;b.setx(2);b.sety(3);cout<<″X=″<classA{public:voidsetx(inta){x=a;}voidsety(intb){y=b;}intgetx()const{returnx;}intgety()const{returny;}protected:intx;private:i
7、nty;};classB:publicA//公有继承{public:intgetsum(){returnx+gety();}};直接访问从基类继承来的保护成员x;基类的私有成员y,只能通过接口函数访问。const表示该成员函数不会修改数据成员的值X=2Y=3X+Y=510类的派生方式为私有继承时基类的所有public和protected的成员在派生类中的访问权限变为private。即基类的公有成员和保护成员被派生类继承过来以后,成为了派生类的私有成员。基类的私有成员仍为基类私有。派生类的成员只能访问基类中的public/protected成员,不能
8、访问private成员派生类的对象不能访问基类中的任何成员(2)私有继承基类的公有成员和保护成员被派生类继承过来,作为派生
此文档下载收益归作者所有