#include< iostream.h >
#include
class Shape{
public:
virtual double calArea() = 0;
};
class Triangle : public Shape{
protected:
double a,b,c;
public:
Triangle(double newA,double newB,double newC); double calArea();
};
Triangle :: Triangle(double newA,double newB,double newC){
a = newA; b = newB; c = newC;
}
double Triangle :: calArea(){
double s; s = (a + b +c) / 2; return sqrt(s * (s - a) * (s - b) * (s - c));
}
class Rectangle : public Shape{
protected:
double w,h;
public:
Rectangle(double newW,double newH);
double calArea(){
return w * h;
}
};
Rectangle ::Rectangle(double newW,double newH){
w = newW; h = newH;
}
class Circle : public Shape{
protected:
double r;
public:
Circle(double newR){
r = newR;
}
double calArea(){
return 3.14 * r * r;
}
};
int main(){
Shape *s[3];
s[0] = new Triangle(3,4,5);
s[1] = new Rectangle(4,5);
s[2] = new Circle(2);
double sum = 0;
for(int i = 0;i < 3;i++) {
sum += s[i]->calArea();
}
cout << "三个图形面积和:" << sum << endl;
return 0;
}



