Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/9 22:36:34
C++继承与派生

C/C++继承与派生

继承与派生

1.继承与派生的含义

继承是 OOP 的主要特性之一。它是指在对软件系统涉及的所有对象进行分类和抽象的基础上,形成各种“家族树”,然后从上到下分层对家族树节点进行刻画,即进行类定义和类实现。由于子类具有父类的所有属性和行为,因此在定义子类时无需从头做起,只需要从父类那“拿来”已经定义和实现好的属性和方法(即成员变量和成员函数),并在此基础上增加其自身特有的属性和方法。显然,继承可以大大简化新类的定义与实现,甚至可以使用已经定义和实现好的类作为父类,通过继承来定义和实现自己的类,显然,继承很好地实现了数据结构和算法的重用。从父类的角度讲是父类派生子类,从子类的角度讲是子类继承父类的属性与方法。在OOA 与OOM 阶段常用分类、抽象和继承术语,OOP 阶段常用派生术语。

2.继承与派生的C++实现样板分析

【源程序 2-2】中关于继承的分析:

(1) 第1~181 行定义和实现了3 个类:Location→Point→Circle,即Location 派生出Point类,Point 类又派生出Circle 类,也可以说Circle 类是Point 类的子类,Point 类是Circle 类的父类,Point 类是Location 的子类,Location 类是Point 类的父类。

(2) 第7~8 行定义了基类Location 的成员变量x 和y,用来刻画平面上一个位置的坐标,第10 行定义了构造函数Location,第11~14 行定义了查看和改变成员变量x、y 值的接口函数,第15~16 行声明了两个屏幕显示和隐藏的行为刻画函数框架。第61~77 行是这些成员函数的实现代码。

(3) 第21 行的类Point 是由Location 类采用public 方式派生的,在继承Location 类的所有成员变量和成员函数的基础上,第23~28 行新增加了用来进一步刻画平面上一个点的可见性、点的类型和实例个数的3 个成员变量Visible、PType 和NumOfInstances,新增加了点的移动行为刻画成员函数MoveTo、获取点实例可见性的接口函数GetVisible 和获取实例个数的静态接口函数getNumOfInstances 等。

(4) 第47 行的类Circle 是由Point 类采用public 方式派生的,在继承Point 类的所有成员变量和成员函数的基础上,第50 行新增加了用来进一步刻画平面上一个圆的大小的成员变量Radius,新增加了圆的缩放行为刻画成员函数Expand、获取圆半径的接口函数GetRadius 等。




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759