16,467
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<cmath>
const double PI=3.1416;
using namespace std;
class shape
{
public:
shape(double w=0) {
r=w;
}
virtual double Area()=0;
protected:
double r;
};
class circle:public shape
{
public:
circle(double g=0):shape(g)
{
}
double Area()
{
double s=PI*r*r;
return s;
}
};
class square:public shape
{
public:
square(double a=0,double b=0):shape(a),l(b) {}
double Area()
{
double s=l*r;
return s;
}
protected:
double l;
};
class triangle:public shape
{
public:
triangle(double c=0,double e=0,double d=0):shape(c)
{
r1=e;
angle=PI*d/180.0;
}
double Area()
{
double s=0.5*r*r1*sin(angle);
return s;
}
protected:
double r1;
double angle;
};
double fun(shape *p)
{
return p->Area();
}
int main()
{
square sq(1,1);
triangle tr(1,1,45);
circle ci(1);
shape *p;
double s=0;
p=&sq;
cout<<"Õý·½ÐÎÃæ»ýÊÇ£º"<<fun(p)<<endl;
s+=fun(p);
p=&tr;
cout<<"Èý½ÇÐÎÃæ»ýÊÇ£º"<<fun(p)<<endl;
s+=fun(p);
p=&ci;
cout<<"Ô²ÐεÄÃæ»ýÊÇ£º"<<fun(p)<<endl;
s+=fun(p);
cout<<"ÈýͼÐÎ×ÜÃæ»ýÊÇ£º"<<s<<endl;
return 0;
}