永发信息网

下面Shape类是一个表示形状的抽象类,Area ( )为求图形面积的函数。请从Shape类派生梯形类(Trapezoid)、圆形类(Circle),三角形类(Triangle),并给出具体的求面积函

答案:1  悬赏:60  手机版
解决时间 2021-07-26 06:54
  • 提问者网友:送舟行
  • 2021-07-25 18:38

下面Shape类是一个表示形状的抽象类,Area ( )为求图形面积的函数。请从Shape类派生梯形类(Trapezoid)、圆形类(Circle),三角形类(Triangle),并给出具体的求面积函数。其中,所有派生类计算面积需要用到的参数由构造函数给出,梯形面积计算需要上底、下底和高,三角形面积需要底和高,圆形面积需要半径。

形状的抽象类声明如下:

class Shape {

public:

virtual double Area( ) = 0;

};

最佳答案
  • 五星知识达人网友:青灯有味
  • 2021-07-25 18:48
#include<iostream>
using namespace std;
class Shape
{
public:
Shape(){}
~Shape(){}
virtual float GetArea(){return -1;}
};
class Circle:public Shape
{
public:
Circle(float radius):itsRadius(radius){}
~Circle(){}
float GetArea(){return 3.14*itsRadius*itsRadius;}
private:
float itsRadius;
};
class Triangle
{
public:
Triangle(float loweredge,float height):itsLoweredge(loweredge),itsHeight(height){};
~Triangle(){}
virtual float GetArea(){return itsLoweredge*itsHeight/2;}
virtual float GetLowerEdge(){return itsLoweredge;}
virtual float GetHeight(){return itsHeight;}
private:
float itsLoweredge;
float itsHeight;
};
class Trapezoid//这个模仿上面
{
public:
Triangle(float upbottom,float lowerbottom,float height)//...
~Triangle();
virtual float GetArea(){return ...} //...
virtual float GetUpBottom(){return...}//...
virtual float GetLowerBottom(){return...}//...
private:
float itsUpBottom;
float itsLowerBottom;
};
int main()
{
Shape *sp;
sp=new Circle(5);
cout<<"The area of the Circle is:"<<sp->GetArea()<<endl;
delete sp;
//
//根据需要添加
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯