您所在位置: 网站首页 / 文档列表 / 民法 / 文档详情
第7章 继承性和派生类.doc 立即下载
上传人:yy****24 上传时间:2024-09-07 格式:DOC 页数:34 大小:1.1MB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

第7章 继承性和派生类.doc

第7章继承性和派生类.doc

预览

免费试读已结束,剩余 24 页请下载文档后查看

16 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

*第7章继承性和派生类本章内容:基类和派生类、单继承、多继承、虚基类。类面向对象系统三要素对象继承封装性基础面向对象系统三特征继承性关键多态性补充继承是面向对象程序设计中软件重用的关键技术。继承机制使用已经定义的类作为基础建立新的类定义,新的类是原有类的数据﹑操作和新类所增加的数据﹑操作的组合。新的类把原有类作为基类引用,而不需要修改原有类的定义。新定义的类作为派生类引用。这种可扩充﹑可重用技术大大降低了大型软件的开发难度和维护费用。7.1基类和派生类我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。YXAZBC单继承多继承7.1.1派生类的定义格式单继承的定义格式:class派生类名:继承方式基类名{派生类新定义成员};public表示公有继承继承方式private表示私有继承protected表示保护继承继承方式规定了如何访问从基类继承的成员。继承方式缺省,隐含私有继承。多继承的定义格式如下:class派生类名:继承方式1基类名1,继承方式2基类名2,…{派生类新定义成员};7.1.2派生类的三种继承方式1.公有继承(public)公有成员是类的接口,在类中和类外可见。特点:基类的公有和保护成员的访问属性在派生类中不变、而基类的私有成员不可访问。private成员protected成员public成员private成员protected成员public成员基类成员派生类新定义成员成员派生类的对象可以访问基类中的公有成员;派生类的成员函数可以访问基类中的公有成员和保护成员。2.私有继承(private)私有成员只能在类中可见,不能再类外或派生类中使用。特点:基类中的公有成员和保护成员都以私有成员身份出现在派生类中,而基类的私有成员在派生类中不可访问。private成员Protected成员private成员public成员private成员private成员protected成员public成员基类成员派生类新定义成员成员派生类的成员函数可以访问基类中的公有成员和保护成员。而无法再往下继承。3.保护继承(protected)保护成员在类中和它的派生类中可见。特点:基类的公有和保护成员都以保护成员的身份出现在派生类中,并且只能被它的派生类成员函数或友元函数访问,而基类的私有成员不可访问。private成员Protected成员protected成员public成员protected成员private成员protected成员public成员基类成员派生类新定义成员成员派生类的成员函数可以访问基类中的公有成员和保护成员。三种不同的继承方式的基类和派生类特性。7.1.3基类与派生类的关系在这个层次结构中,由上到下,是一个具体化、特殊化的过程;由下到上,是一个抽象化的过程。最高层抽象程度最高,从上到下加入了自己的新特征,而最下层是最为具体的。ABC在派生过程中,派生出来的新类也同样可以作为基类再继续派生新的类。直接参与派生出某类的基类称为直接基类。基类的基类称为间接基类,比如A类派生出B类,B类又派生出C类。则B类是C类的直接基类,A类是B类的直接基类。而A类可以称为C类的间接基类。7.2单继承1.派生类B中f2()能否访问基类A中:f1(),j1,i1?2.派生类B的对象b1能否访问基类A中:f1(),j1,i1?3.派生类C中f3()能否访问直接基类B中:f2(),j2,i2?能否访问间接基类A中:f1(),j1,i1?4.派生类C的对象c3能否访问直接基类B中:f2(),j2,i2?能否访问间接基类A中:f1(),j1,i1?7.2.1成员访问权限的控制classC:publicB{public:voidf3();};classB:publicA{public:voidf2();protected:intj2;private:inti2;};#include<iostream.h>classA{public:voidf1();protected:intj1;private:inti1;};例7.2#include<iostream.h>classA{public:voidf(inti){cout<<i<<endl;}voidg(){cout<<”g\n”;}};classB:A{public:voidh(){c
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

第7章 继承性和派生类

文档大小:1.1MB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用