- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
补充C3_继承和派生类课件
继承和派生类 课程内容 继承和派生的基本概念 单一继承 访问权限和赋值兼容规则 多重继承 构造函数与析构函数调用顺序 两义性及其支配规则 虚基类 课程内容 继承和派生的基本概念 单一继承 访问权限和赋值兼容规则 多重继承 构造函数与析构函数调用顺序 两义性及其支配规则 虚基类 继承和派生的基本概念 继承(inheritance):建造新的派生类。派生类从一个或多个以前定义的基类继承数据和函数,同时增加或重新定义数据和操作。这就产生了类的层次性。 举例:“狗”与“黑狗” “黑狗”的一般描述:哺乳、四条腿、爱啃骨头….、黑毛。 换一种描述方法:黑狗就是具有黑毛的狗。 继承和派生的基本概念 继续上例 黑狗是黑毛的狗 反映了“狗”和“黑狗”这两个概念之间的内在联系 在继承机制下,“黑狗”自动拥有了“狗”这一特殊群体的所有特性 继承和派生的基本概念 两个定义: (1)继承:派生类自动地将基类的所有成员作为自己的成员。 (2)派生:通过特殊化已有的类来建立新类的过程。原有的类称为基类(父类),新建的类称为派生类(子类)。 继承和派生的基本概念 派生是C++语言最重要的特性之一。它是建立在客观世界中实际存在的层次性上。 人 派生:教师 派生:学生 派生:工人 继承和派生的基本概念 当从现存类中派生出新类时,可采用如下变化方式: (1)增加新的成员变量(成员数据) (2)增加新的成员函数 (3)重新定义已有成员函数(即重载) (4)改变现有成员的属性(重新给成员数据赋值) 继承和派生的基本概念 C++中有两种继承方式: (1)单一继承:派生类只能由一个基类 例子 形成一棵倒置的树 (2)多重继承:派生类可以有一个或多个基类 例子 形成有向无环路的图 单一继承例子 多重继承例子 继承和派生的基本概念 基类定义了对象的一个集合,而派生类通过在基类已有特性的基础上同过增加新的成员特性限制了基类的定义,以获得基类定义的对象集合的一个子集 继承和派生的基本概念 从编码角度讲,派生类从基类中以较低的代价换来了大量的灵活性。如果基类可靠,则调试时只需测试派生类中所做的修改即可。 性质约束:对父类的性质加以限制或删 除。 性质扩展:增加父类的性质 课程内容 继承和派生的基本概念 单一继承 访问权限和赋值兼容规则 多重继承 构造函数与析构函数调用顺序 两义性及其支配规则 虚基类 单一继承 一般格式: class 派生类名:访问控制 基类名{ private: 成员说明列表 public: 成员说明列表 }; 举例1 class Location{ private: int X,Y; public: void setX( int myx ) { X=myx;} void setY( int myy ) { Y=myy;} void showxy( ) { cout“X=”X“ ” “Y=”Yendl; } }; 类的保护成员 C++规定,派生类的成员函数可以直接访问基类中定义的或基类(从另一个基类)继承来的公有成员,但不能访问基类的私有成员。 派生类的函数要访问基类的私有成员,方法:将基类的私有成员改为保护成员。 保护成员(protected):对于派生类成员函数而言,可以被访问;它是公有成员,对于其他类成员函数,它是私有的,不能被访问。(当作私有成员使用,但可以被派生类的函数访问) 课程内容 继承和派生的基本概念 单一继承 访问权限和赋值兼容规则 多重继承 构造函数与析构函数调用顺序 两义性及其支配规则 虚基类 访问权限和赋值兼容规则 类的派生其目的为提高代码重用性。 访问控制决定了基类各成员在派生类中的访问权限。 访问控制在类派生中主要有两类 公有派生(public) 私有派生(private) 公有派生 前述例1中使用的派生就是公有派生. 在公有派生情况下,基类成员的访问权限在派生类中保持不变。包括: 基类的公有成员在派生类中仍是公有的 基类的保护成员在派生类中仍是保护的 基类的不可访问的和私有的成员在派生类中仍然是不可访问的 派生类中存在第四种访问级别:不可访问(inaccessible)P67 赋值兼容规则 赋值兼容规则指在公有派生的情况下,一个派生类的对象可以作为基类对象来使用的地方。主要有以下三种情况: 派生的对象可以赋给基类的对象。如: derived d; base b; b=d; 派生类的对象可以初始化基类的引用。如: derived d; base br=d; 派生类的对象的地址可以赋给指向基类的指针。如: derived
文档评论(0)