- 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
公有派生和赋值兼容规则
基类成员的访问权限
基类的公有成员在派生类中仍然是公有的
基类的保护成员在派生类中仍然是保护的
基类的不可访问的和私有的成员在派生类中也仍然是不可访问的
赋值兼容规则(前提是公有派生)
公有派生和
您可能关注的文档
最近下载
- NBT 32030-2016 光伏发电工程勘察设计费计算标准.pdf VIP
- 招聘流程再造与业务能力模型设计.pptx
- 2023年同济大学软件工程专业《操作系统》科目期末试卷A(有答案).docx VIP
- 2024年高等学校英语应用能力考试大学英语三级b考试试题真题 12月含答案.doc
- 四年级下册科学知识点.docx VIP
- YD∕T 3436.4-2019 架空通信线路配件 第4部分:抱箍类 、光缆预留支架.pdf
- 霍尼韦尔楼控培训.pptx VIP
- 贵州省安顺市2023-2024学年小升初语文试卷(含答案).docx VIP
- 2023-2024学年贵州省六盘水市小升初语文试卷(有答案).docx VIP
- 工业用-压力管道元件制造许可型式试验报告.pdf VIP
文档评论(0)