- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
派生类的构造函数.ppt
第四章 继承和派生类
汽车
例如:现有person类
class Person{
private:
char name[10];
int age;
char sex;
public:
void print();
};
要声明雇员类employee
class Employee{
private:
char name[10];
int age;
char sex;
char department[20];
float salary;
public:
void print();
};
继承可以避免代码的严重重复,提高代码的可重用性
继承和派生的基本概念
继承和派生的基本概念
类的派生:通过特殊化已有的类来建立新类的过程
基类(父类):原有的类:例如Person类
派生类(子类):新建立的类:例如Employee类
继承:派生类自动地将基类的所有成员作为自己的成员
派生新类时,可以对派生类做的变化:
可增加新的成员变量
可增加新的成员函数
可重新定义已有的成员函数
可改变现有成员的属性
单一继承
声明一个派生类的一般格式为:
class 派生类名:访问控制 基类名{
//派生类新增的数据成员和成员函数
};
访问控制:用于规定基类成员在派生类中的访问权限。缺省时为private
1.定义基类(person类)
class person{
private:
char name[10];
int age;
char sex;
public:
void print();
};
2.定义派生类(employee类)
class employee:public person{
char department[10];
float salary;
public:
};
派生类employee继承类person的全部特性。
单一继承
单一继承
class Location{
private:
int X,Y;
public:
void SetXY(int mx,int my){X=mx;Y=my;}
void showxy()
{coutX=X Y=Yendl;}
};
class Rectangle:public Location{
private:
int H,W;
public:
void SetHW(int mh,int mw){H=mh;W=mw;}
void show()
{coutH=H W=Wendl;}
};
void main()
{
Rectangle r1;
r1.SetXY(3,5);
r1.SetHW(4,6);
r1.showxy();
r1.show();
}
类的保护成员
r1.showxy();
r1.show();
来自派生类
void Rectangle::show()
{coutX=X Y=YH=H W=Wendl;}
出错:问题在哪里?
X和Y是从Location继承来的;H和W是Rectangle自己定义的
类的私有成员是只能被它的成员函数和友元访问的
基类中的私有成员不允许派生类中的成员函数访问,但可通过基类提供的公有成员函数访问
类的保护成员
保护成员:protected成员。对派生类的成员函数而言,它是公有成员,可以被访问;对其他函数而言,它是私有成员,不能被访问
class Location{
protected:
int X,Y;
public:
void SetXY(int mx,int my){X=mx;Y=my;}
void showxy()
{coutX=X Y=Yendl;}};
class Rectangle:public Location{
private:
int H,W;
public:
void SetHW(int mh,int mw){H=mh;W=mw;}
void show()
{cout X=X Y=Y H=H W=Wendl;}
};
void main()
{
Rectangle r1;
r1.X=3;
r1.Y=5;
r1.SetHW(4,6);
r1.show();
}
r1.SetXY(3,5)
访问权限和赋值兼容规则
派生方式:
公有派生:关键字public
私有派生(默认值):关键字private
公有派生和赋值兼容规则
基类成员的访问权限
基类的公有成员在派生类中仍然是公有的
基类的保护成员在派生类中仍然是保护的
基类的不可访问的和私有的成员在派生类中也仍然是不可访问的
赋值兼容规则(前提是公有派生)
公有派生和
您可能关注的文档
最近下载
- Python人工智能培训.pptx
- 建筑工程图集 18K802:暖通空调系统的检测与监控(水系统分册).pdf VIP
- 2023-2024学年译林版(三起)英语六年级上册期中测试题含答案.docx
- GF-2017-0201《建设工程施工合同示范文本》.doc
- 2024年保安员考试复习题库及答案(共1500题).doc
- 五四运动说课课件(新部编).ppt
- DLT5100—2014 水工混凝土外加剂技术规程.pdf
- 2022年上海市普陀区初三中考一模英语听力试题及原文(附听力音频).docx VIP
- (高清版)BT 26745-2021 土木工程结构用玄武岩纤维复合材料.pdf VIP
- 大学生就业引航树立正确的就业观.pptx VIP
文档评论(0)