- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C继承与多态性的
第五章:继承性和多态性;第1部分继承与派生;1. 继承的概念和派生类的定义
继承和派生的基本概念:
继承性是面向对象程序设计的重要特性之一,C++程序的可重用性是通过继承机制来实现的。
继承在概念上将具有从属关系的类连接起来,便于描述现实实体的层次关系。
在C++中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。; 派生类继承了基类(父类)的所有数据成员和成员函数,并可以对成员作必要的增加或调整。
基类和派生类是相对而言的,形成类的继承层次结构:
① 父类可以派生出多个子类。
② 子类又可以作为父类,再派生出新的派生类。
③ 所有的子孙后代都继承了祖辈的基本特征,同时又有区别和发展。
;单继承:一个派生类只继承一个基类,这种继承关系所形成的层次是一个树形结构。; CObject;多继承:一个派生类继承两个或多个基类。; 派生类的定义方法:
前例中,已声明过一个基类Student,在此基础上通过单继承建立一个派生类Student1。;单继承派生类的声明格式:
class 派生类名 : 继承方式基类名
{
派生类新增加的数据成员
派生类新增加的成员函数
};
多继承派生类的定义格式为:
class 派生类名 : 继承方式1基类名1,继承方式2基类名2,…
{
派生类新增加的数据成员
派生类新增加的成员函数
};
继承方式包括:public(公用的),private(私有的)和protected(受保护的),缺省为私有的。; 派生类的构成:
派生类成员有两部分:一是从基类继承过来的成员,体现共性;二是自己增加的成员,体现个性。; 构造一个派生类包括以下3部分工作:
① 不可选择地从父类接收全部成员(构造和析构函数除外)。
缺陷:数据冗余、空间浪费和效率降低。这在目前C++中无法解决。
解决:在设计基类时要充分考虑到派生类的需要。(事实上有些类是专门作为基类而设计的)
② 调整从基类接收的成员:
方法一:改变基类成员在派生类中的访问属性——通过指定继承方式来实现。
方法二:在派生类声明同名成员——覆盖基类成员。!!注意,对于成员函数,不仅要同名还要参数个数和类型都相同。(请问,这是为什么?)
③ 在声明派生类时增加成员:
体现派生类对基类功能的扩展,同时定义自己的构造和析构函数,这需要精心设计。;程序5-1:CPoint类及其派生类CRect;派生类成员的访问属性:
派生类具有两部分成员,且不是简单直接继承,因而其访问属性势必复杂。;2、派生类的继承方式:
公有继承(public):保持C++封装特性,保护私有成员,依然是不变的原则。; ﹡可以知道:一个成员在不同派生层次中的访问属性可能是不同的,它与继承方式有关。;class Student1 : private Student
{ private:
int age;
string addr;
public:
void diaplay_1();
}
void Student1::display_1();
{ cout“age:”ageendl;
cout“address:”addrendl;
}; 保护继承(protected):
由protected声明的成员称为“受保护的成员”,或简称“保护成员”。
保护成员不能被类外访问(等价于私有成员),但可以被派生类的成员函数引用(相当于公有成员)。
保护继承中,基类的public和protected成员都以protected身份出现在派生类中,基类的private成员不可访问。;class A
{
protected:
int x;
}
int main( )
{
A a;
a.X=5; //错误
};class Student1 : protected Student
{ private:
int age;
string addr;
public:
void diaplay_1();
}
void Student1::diaplay_1();
{ cout“num:”numendl;
cout“name:”nameendl;
cout“sex:”sexendl;
cout“age:”ageendl;
cou
您可能关注的文档
最近下载
- 物联网平台 ThingsBoard 教程.pdf VIP
- 1.1互动开放的世界 (课件)2025-2026道德与法治 九年级下册 统编版.pptx VIP
- 人教A版高中数学新教材中复习参考题的分析及使用现状研究.pdf
- 2024年卫生高级职称面审答辩(中医骨伤科)副高面审模拟试题及答案.docx
- 医院感染性疾病科护士面试题及参考答案结构化面试题.docx VIP
- DBJ33_T 1334-2024 《建筑施工承插型盘扣式钢管支撑架安全技术规程》 .docx VIP
- 水污染试题(5套)含答案3.docx VIP
- 班组长安全管理培训课件.ppt VIP
- 康复科室建设规划.pptx
- φ56组合锚绞机恒张力液压控制系统设计和分析.pdf VIP
原创力文档


文档评论(0)