下载此文档

2020年06类的继承.ppt


文档分类:IT计算机 | 页数:约31页 举报非法文档有奖
1/31
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/31 下载此文档
文档列表 文档介绍
基类和派生类
在现实世界中,一类事物的对象常常也属于另一类事物。
在面向对象程序设计方法中,一个类的对象也常常是另一个类的对象,即一个类具有了另一个类的属性和方法。
在定义一个类时,根据类的继承性,我们能够且应尽可能地利用现有的类来定制新的类,而不必重新设计新的类。
1. 问题的提出
1
06类的继承
2021/1/13
在继承关系中,新定义的类称为被继承类的派生类或子类,而被继承的类称为新定义类的基类或父类。派生类继承了基类的所有成员。
一个派生类也可以作为另一个派生类的基类。
2. 基类和派生类的概念
class <派生类名> : [<派生方式>] <基类名>
{
. . . // 派生类新增加的成员声明列表
};
3. 派生类的定义
2
06类的继承
2021/1/13
派生方式决定了基类的成员在派生类中的访问权限。派生方式共有三种:public、private和protected(缺省值为private)。
虽然派生类继承了基类的所有成员,但为了不破坏基类的封装性,无论采用哪种派生方式,基类的私有成员在派生类中都是不可见的,即不允许在派生类的成员函数中访问基类的私有成员。
说明:
3
06类的继承
2021/1/13
采用public派生,基类成员的访问权限在派生类中保持不变,即基类所有的公有或保护成员在派生类中仍为公有或保护成员。public派生最常用。
(1) 可以在派生类的成员函数中访问基类的非私有成员;
(2) 可通过派生类的对象直接访问基类的公有成员。
采用private私有派生,基类所有的公有和保护成员在派生类中都成为私有成员,只允许在派生类的成员函数中访问基类的非私有成员。private派生很少使用。
采用protected保护派生,基类所有的公有和保护成员在派生类中都成为保护成员,只允许在派生类的成员函数和该派生类的派生类的成员函数中访问基类的非私有成员。
三种派生方式的区别:
4
06类的继承
2021/1/13
例 定义类Point,然后定义类Point的派生类Circle。
#include <>
class Point // 定义基类,表示点
{
private:
int x;
int y;
public:
void setPoint(int a, int b) { x=a; y=b; }; // 设置坐标
int getX() { return x; }; // 取得X坐标
int getY() { return y; }; // 取得Y坐标
};
5
06类的继承
2021/1/13
class Circle : public Point // 定义派生类,表示圆
{
private:
int radius;
public:
void setRadius(int r) { radius=r; }; // 设置半径
int getRadius() { return radius; }; // 取得半径
int getUpperLeftX() { return getX()-radius; };
// 取得外接正方形左上角的X坐标
int getUpperLeftY() { return getY() + radius; };
// 取得外接正方形左上角的Y坐标
};
6
06类的继承
2021/1/13
main()
{
Circle c;
(200, 250);
(100);
cout<<"X="<<()<<", Y="<<()
<<", Radius="<<()<<endl;
cout<<"UpperLeft X="<<()
<<", UpperLeft Y="<<()<<endl;
}
公有派生类的对象可以直接访问基类Point的公有成员
程序运行结果: X=200,Y=250,Radius=100 UpperLeft X=100,UpperLeft Y=350
7
06类的继承
2021/1/13

2020年06类的继承 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数31
  • 收藏数0 收藏
  • 顶次数0
  • 上传人读书百遍
  • 文件大小343 KB
  • 时间2021-01-13