试题题干
下面Shape类是一个表示形状的抽象类,Area ( )为求图形面积的函数。请从Shape类派生梯形类(Trapezoid)、圆形类(Circle),三角形类(Triangle),并给出具体的求面积函数。其中,所有派生类计算面积需要用到的参数由构造函数给出,梯形面积计算需要上底、下底和高,三角形面积需要底和高,圆形面积需要半径。
形状的抽象类声明如下:
class Shape {
public:
virtual double Area( ) = 0;
};
参考答案
试题解析
在C++语言中,从基类派生派生类的一般格式如下:
class派生类名: 继承方式说明符 基类名
{
类体
};
构造函数的函数名与类名相同,没有返回值。构造函数的声明格式如下:
类名(形参1, 形参2, …,形参n);
梯形面积=(上底+下底)*高/2
三角形面积=底*高/2
圆形面积=π*R*R