派生类成员-西安交通大学计算机程序设计.ppt

派生类成员-西安交通大学计算机程序设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大学C++程序设计教程 西安交通大学 计算机教学实验中心 第10章 继承和派生 本章目标 1.掌握继承和派生的概念,派生类的定义方法。 2.继承的不同方式对基类成员的访问控制 3.掌握单继承的概念、定义方法、单继承派生类构造函数的执行顺序。 4. 理解多继承的概念 5. 虚基类的概念和定义 授课内容 10.1 基类与派生类 10.2 派生类的继承方式 10.3 派生类的构造函数和析构函数 10.4 接口和实现方法的分离 10.5 显示访问基类成员 10.6 使用this指针 水果的分类 10.1 继承和派生 从一个或多个以前定义的类(基类)产生新类的过程称为派生,这个新类又称为派生类。 类的继承(inheritance)是指新类从基类那里得到基类的特征,也就是继承基类的数据和函数。 派生的新类同时也可以增加或重新定义数据和操作,这就产生了类的层次性。 派生就是创建一个具有别的类的属性和行为的新类的能力。派生和继承的概念也来自于人们认识客观世界的过程。 层次概念 客观世界本身是有层次的,人们认识客观世界的过程中,由一般到特殊的演绎思维发挥着巨大作用。演绎的过程在绝大多数情况下就表现为层次分类的过程。继承使得程序员可以在一个较一般的类的基础上很快地建立一个新类,而不必从零开始设计每个类。 继承常用来表示类属关系,不能将继承理解为构成关系。当从现存类中派生出新类时,可以对派生类做如下几种变化: ① 可以增加新的数据成员; ② 可以增加新的成员函数; ③ 可以重新定义已有的成员函数; ④ 可以改变现有成员的属性。 多重继承与单继承 派生类的定义格式: class 派生类名:访问权限 基类名1,访问限定符 基类名2,……,访问限定符 基类名n { private: 成员表1; //派生类增加或替代的私有成员 public: 成员表2; //派生类增加或替代的公有成员 protected: 成员表3; //派生类增加或替代的保护成员 };//分号不可少 其中基类1,基类2,……是已声明的类。 在派生类定义的类体中给出的成员称为派生类成员,它们是新增加的数据和函数成员。这些新增加的成员是派生类对基类的发展,它们给派生类添加了不同于基类的新的属性和功能。派生类成员包括新添加的,也包括通过屏蔽作用,取代基类成员的更新成员 派生类中成员的变化 10.2 派生类的继承方式 实例:公有继承(public) class Person //人员类定义 {protected: char Name[10];//姓名 int Age;//年龄 char Sex;//性别 public: void Register(char *name, int age, char sex) ; void ShowMe(); }; class Employee: public Person //雇员类定义 { char Dept[20]; //工作部门 float Salary; //月薪 public: Employee() ; void EmployeeRegister(char *name, int age, char sex, char *dept, float salary); void ShowEmp(); //显示雇员信息 }; 保护继承(public) 保护继承方式创建的派生类对基类各种成员访问权限如下 : 基类的公有成员和保护成员都相当于派生类的保护成员,派生类可以通过自身的成员函数或其子类的成员函数访问他们 对于基类的私有成员,无论派生类内部成员或派生类使用者都无法直接访问 10.3 派生类的构造函数和析构函数 派生类构造函数的一般形式为: 派生类名::派生类名(参数总表):基类名1(参数表1),…,基类名n(参数表n), 内嵌对象名1(对象参数表1),…,内嵌对象名m(对象参数表m) { 派生类新增加成员的初始化; } 派生类与基类的析构函数没有什么联系,彼此独立,派生类或基类的析构函数只作各自类对象消亡前的善后工作 派生类构造函数各部分的执行次序为: 1.调用基类构造函数,按它们在派生类定义的先后顺序,顺序调用。 2.调用内嵌对象构造函数,调用次序按各个对象在派生类内声明的顺序。 3.派生类的构造函数体中的操作。 *在派生类构造函数中,只要基类不是使用缺省构造函数都要显式给出基类名和参数表。如果基类没有定义构造函数,则派生类也可以不定义,全部采用系统给定的缺省构造函数。如果基类定义了带有形参表的构造函数时,派生类就应当定义构造函数。 例10-3 派生类构造函数和析构函数的执行 #includeiostream.h #includes

您可能关注的文档

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档