c++设计一个类层次,定义一个抽象类--形装,其中包括有求形状的面积的抽象方法。
继承该抽象类定义三角形、矩形、圆。分别创建一个三角形、矩形、圆存入一个数组中,将数组中各类图形的面积输出。这个如何实现分别创建一个三角形、矩形、圆存入一个数组中,将数组中...
继承该抽象类定义三角形、矩形、圆。分别创建一个三角形、矩形、圆存入一个数组中,将数组中各类图形的面积输出。这个如何实现
分别创建一个三角形、矩形、圆存入一个数组中,将数组中各类图形的面积输出。这个如何实现 展开
分别创建一个三角形、矩形、圆存入一个数组中,将数组中各类图形的面积输出。这个如何实现 展开
展开全部
#include <iostream>
#include <cmath>
using namespace std;
class Shape{
public:
virtual double area()=0;
};
class Triangle:public Shape{
double a,b,c;
public:
Triangle(double x=1,double y=1,double z=1){
a=x; b=y; c=z;
}
double area(){
double p;
p=(a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
};
class Rectangle:public Shape{
double a,b;
public:
Rectangle(double x=1,double y=1){
a=x; b=y;
}
double area(){
return a*b;
}
};
class Circle:public Shape{
double r;
public:
Circle(double x=1){
r=x;
}
double area(){
return 3.14159*r*r;
}
};
void main(){
Triangle tri(3,4,5);
Rectangle rec(10,5);
Circle cir(10);
Shape *p[3]={ &tri, &rec, &cir};
int i;
for(i=0; i<3; i++)
cout <<p[i]->area() <<endl;
return;
}
#include <cmath>
using namespace std;
class Shape{
public:
virtual double area()=0;
};
class Triangle:public Shape{
double a,b,c;
public:
Triangle(double x=1,double y=1,double z=1){
a=x; b=y; c=z;
}
double area(){
double p;
p=(a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
};
class Rectangle:public Shape{
double a,b;
public:
Rectangle(double x=1,double y=1){
a=x; b=y;
}
double area(){
return a*b;
}
};
class Circle:public Shape{
double r;
public:
Circle(double x=1){
r=x;
}
double area(){
return 3.14159*r*r;
}
};
void main(){
Triangle tri(3,4,5);
Rectangle rec(10,5);
Circle cir(10);
Shape *p[3]={ &tri, &rec, &cir};
int i;
for(i=0; i<3; i++)
cout <<p[i]->area() <<endl;
return;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询