C++设计题
设计一个表示形状的抽象类shape,其成员函数area()为求图形面积的函数,在此基础上派生三角形类(triangle)、矩形类(rectangle),二者都有具体的求面...
设计一个表示形状的抽象类shape,其成员函数area( )为求图形面积的函数,在此基础上派生三角形类(triangle)、矩形类(rectangle),二者都有具体的求面积函数。其中,三角形类有数据成员边长S和高H;矩形类有数据成员长L和宽W。
展开
1个回答
展开全部
下列shape类是一个败陪表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。请从shape类派生三角形类(triangle)、矩形类(rectangle),并给出具体的求面积函衫肆数
class shape{ //形状基类
public:
virtual float area( )=0;
};
float total(shape *s[ ],int n)
{
float sum=0.0;
for(int i=0;i<n;i++)
sum+=s[i]->area( );
return sum;
}
class Triangle:public Shape //三角察塌蠢形
{
public:
Triangle(double h,double w){H=h;W=w;}
double Area() const{return H*W*0.5;}
private:
double H,W;
};
class Rectangle:public Shape //矩形
{
public:
Rectangle(double h,double w){H=h;W=w;}
double Area()const{return H*W;}
private:
double H,W;
};
class shape{ //形状基类
public:
virtual float area( )=0;
};
float total(shape *s[ ],int n)
{
float sum=0.0;
for(int i=0;i<n;i++)
sum+=s[i]->area( );
return sum;
}
class Triangle:public Shape //三角察塌蠢形
{
public:
Triangle(double h,double w){H=h;W=w;}
double Area() const{return H*W*0.5;}
private:
double H,W;
};
class Rectangle:public Shape //矩形
{
public:
Rectangle(double h,double w){H=h;W=w;}
double Area()const{return H*W;}
private:
double H,W;
};
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询