C++抽象类
题目:设计一个计算图形面积的类库。它的顶层是一个抽象类Shape,并且提供了三个纯虚函数:显示数据成员、返回面积、返回体积。
class Shape{
virtual void ShowMember()=0;
virtual double GetArea()=0;
virtual double GetVolume()=0;
};
第二层由Shape类派生TwoDimShape(二维图形)、ThreeShape(三维图形)类、他们增加了有关的数据成员,但没有成员函数的实现。第三层派生具体的图形类。TwoDimShape类派生Circle、Ellipse、Rectangle、Triangle等类。ThreeShape类派生Ball、Cylinder(圆柱体)、RectangularParallelepiped(长方体)等类。
如下为类库的体系结构:
总结:
(1)一个基类如果包含一个或一个以上纯虚函数的,就是抽象基类。
(2)抽象基类不能定义对象
(3)在类的层次结构中,顶层或最上面的几层可以是抽象基类