#include <iostream>
#include<cstring>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
class Shape{
public:
virtual double Area() const =0;
};
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 Circle:public Shape{
public:
Circle(double r){
radius=r;
}
double Area() const {
return radius*radius*3.1415;
}
private:
double radius;
};
class Trapezoid:public Shape{
public:
Trapezoid(double top,double bottom,double high){
T=top;
B=bottom;
H=high;
}
double Area() const {
return (T+B)*H*0.5;
}
private:
double T,B,H;
};
class Squre:public Shape{
public:
Squre(double side){
S=side;
}
double Area() const {
return S*S;
}
private:
double S;
};
class Application{
public:
double Compute(Shape *s[],int n){
double sum=0;
for(int i=0;i<n;i++) {
sum+=s[i]->Area();
}
return sum;
}
};
class MyProgram:public Application{
public:
MyProgram();
~MyProgram();
double Run();
private:
Shape * *s;
};
MyProgram::MyProgram(){
s=new Shape*[2];
s[0]=new Triangle(3,4);
s[1]=new Trapezoid(2,3,1);
}
MyProgram::~MyProgram(){
for(int i=0;i<2;i++){
delete s[i];
}
delete[] s;
}
double MyProgram::Run(){
double sum=Compute(s,5);
return sum;
}
int main(){
cout<<MyProgram().Run()<<endl;
}
版权声明:本文为hahadelaochao原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。