- 4
- 0
- 约2.04千字
- 约 18页
- 2018-06-16 发布于福建
- 举报
面向对象程序设计实践-11 继承和派生
面向对象程序设计与实践
第十一讲 继承与派生
李衷怡
wendan_li@hust.edu.cn
引言
人类: 姓名、性别、年龄
教师类: 姓名、性别、年龄、专业、职称
管理人员类: 姓名、性别、年龄、职务
学生类: 姓名、性别、年龄、学号、班级、专业
人类
管理员类
学生类
教师类
继承与派生的基本概念
新增加的成员数据和成员函数
派生类的声明方式
类成员的访问权限
私有成员(private):可以被类自身的成员访问,但不能被包括派生类在内的其他任何类和任何普通函数访问
公有成员(public):可以被任何普通函数和任何类的成员函数访问
保护成员(protected):可以被类自身的成员访问和派生类的成员函数访问,但不能被任何类外或普通函数访问
类的继承方式
公有继承:
基类的私有成员不能被派生类的函数成员访问
基类的公有成员和保护成员在派生类中的访问权限不变
保护继承:
基类的私有成员不能被派生类的函数成员访问
基类的公有成员和保护成员在派生类中变为保护类型
私有继承:
基类的私有成员不能被派生类的函数成员访问
基类的公有成员和保护成员在派生类中变为私有类型
类的继承方式
继承方式
基类成员
private
protected
public
private
-
-
-
protected
private
protected
protected
public
private
protected
public
派生类示例
角
色
设
计
派生类示例
class Saint : public Soldier
{
public:
void Attack(int boss)//重定义实施攻击
{
Soldier::Attack(boss);//调用父类的函数
if(rand() % 10 5)
{
boss /= 2;
cout Critical Strike!;
}
}
};
派生类示例
class Ghost : public Saint
{
public:
void Attack(int boss)//重定义实施攻击
{
Saint::Attack(boss); //调用父类的函数
if(rand() % 10 2)
{
boss = 0;
cout Deadly Strike!!!;
}
}
};
派生类示例
DemoGame2
派生类的变化
可以继承基类的成员数据和成员函数
可以增加新的成员变量
可以增加新的成员函数
可以改变继承成员的访问权限
可以重新定义已有的成员函数
派生类的构造函数
包括新增的和基类的构造函数参数
派生类的构造函数
class Point //基类
{
public:
Point(int px, int py) //基类构造函数
{ x = px; y = py; }
};
class Circle : public point //派生类
{
public: //派生类构造函数
Circle(int cx, int cy, int r): Point(cx, cy)
{ radius = r; } //只对派生类新增的数据成员初始化
};
派生类的构造函数
int main()
{
Circle circle(2, 3, 6); //调用构造函数创建对象
return 0;
}
Circle(int cx, int cy, int r): Point(cx, cy)
{ radius = r; }
派生类的构造函数
Circle::Circle(int cx, int cy, int r): Point(cx, cy)
类外定义
Circle(int cy, int r): Point(100, cy)
使用常量
Circle(int cx, int cy, int r): Point(cx, cy), radius(r) { }
初始化表
有子对象的派生类的构造函数
class Circle: public Point //声明派生类
{
private: //派生类的私有成员
int radius;
Point rotate; //子对象
public:
//派生类的构造函数
Circle(int cx, int cy, int r, int rx, int ry):
Point(cx, cy), rotate(rx, ry)
{ rad
您可能关注的文档
最近下载
- 热交换器能效测试与评价规则TSGR0010-2019.PDF
- 2025年山东省德州市【辅警协警】笔试真题(含答案).pdf VIP
- 内蒙古交通职业技术学院单招职业倾向性考试题库及参考答案详解一套.docx VIP
- 人事档案管理员面试高频问题及标准答案解析.docx VIP
- 2025年广东省现场流行病学调查职业技能竞赛理论参考试题库(含答案).docx VIP
- 2025年内蒙古交通职业技术学院单招笔试职业技能考核试题库含答案解析(5套题).docx VIP
- 2025年江苏省徐州市中考语文试题卷(含答案及解析).pdf
- 2024年上海市徐汇区中考英语一模试卷.docx VIP
- QXG114.1-2019冷镦和冷挤压用钢盘条.pdf
- 中小学幼儿园防校园欺凌安全教育PPT课件.pptx VIP
原创力文档

文档评论(0)