西安工业大学耿军雪老师的C++课件之继承与派生.ppt

西安工业大学耿军雪老师的C++课件之继承与派生.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
继承与派生 inheritance derivate 本章主要内容 类的继承与派生 在老的基础上产生新的东西 类成员的访问控制 新旧部分的关系 单继承与多继承 一脉相传与众家之长 派生类的构造、析构函数 不继承 基类和派生类的赋值规则 赋值兼容原则 复习 类及对象的访问权限 类中的成员函数可以直接访问类中的数据成员(包括私有成员、公有成员、保护成员); 类中的成员函数可以相互访问; 类的对象只能访问类的公有成员,不能访问私有成员及保护成员 问题的提出 问题: 我会使用windows98 ,我需要重新学习2000操作系统吗? 我定义了一个描述点的类,如何在定义一个描述矩形的类? 继承与派生的目的 继承的目的:实现数据、代码的重用。 派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有数据、代码进行改造。 继承意味着自动地拥有,或曰隐含地复制,是OO技术提高软件开发效率的重要原因之一。 基本概念 继承的特点: 继承具有层次结构 越在上面的类越具有普通性和共性,下层比上层更具体,越在下层越细化、专门化。 继承具有传递性,即派生类能自动继承上层基类的全部数据结构及操作方法(数据成员及成员函数)。 保持已有类的特性而构造新类的过程称为继承。 在已有类的基础上新增自己的特性而产生新类的过程称为派生。 被继承的已有类称为基类(或父类)。 派生出的新类称为派生类。 基类与派生类的对应关系 单继承:派生类只从一个基类派生。 多继承:派生类从多个基类派生。 多重派生:由一个基类派生出多个不同的派生类。 多层派生:派生类又作为基类,继续派生新的类。 第一节单继承的派生类 1、派生类的定义 class 派生类名:继承方式 基类名 { //如何吸收 成员声明; //如何调整、新增 } 例【4.1】在基类base中定义一个平面点,通过派生derived定义空间点。 第一节 单继承的派生类 #includeiostream using namespace std; class Base //基类Base的定义 { private: float x,y; public: Base(float a=0,float b=0) {x=a;y=b;} void print(void) { coutx=x endl y=yendl;} }; 第一节 单继承的派生类 class Derived:public Base //派生类Derived的定义——注意定义方法 { private: float z; public: Derived(float a=0,float b=0,float c=0):Base(a,b) { z=c;}//派生类的构造函数定义 void print(void) //派生类的成员函数 { Base::print();//调用基类Base的成员函数print(); coutz=zendl; } }; 第一节 单继承的派生类 void main(void) { Base a(10.0,20.0); Derived b(10.0,20.0,30.0); a.print(); b.print(); } 2、说明: 派生类的构造函数中必须提供为基类数据成员进行初始化的参数表。格式: 派生类名(参数表): 基类名(参数名1,参数名2,…) { 函数体 } 其中,参数表中必须包含基类的数据成员和派生类中新增数据成员的初始化参数。 第一节 单继承的派生类 3、继承方式---规定如何访问从基类继承的成员 不同继承方式的影响主要体现在: 1、派生类成员对基类成员的访问控制。 2、在外部通过派生类对象对基类成员的访问控制。 三种继承方式 公有继承 私有继承 保护继承 第一节 单继承的派生类 一、公有继承(public) 基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可访问。 [父类private成员无法继承,如著作权、职务。父类成员既想保护,又想给子类使用,应声明为protected] 派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员。 通过派生类的对象只能访问基类的public成员。 [仍为public,能被外部访问] 第一节 单继承的派生类 class Point //基类Point类的声明

文档评论(0)

bhl0572 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档