您的位置:首页 > 其它

编写一个程序定义抽象类有他派生五个派生类 圆 正方形 矩形 梯形 三角形用函数分别求面积 总面积 要求用基类指针数组

2013-06-12 17:00 801 查看
#include<iostream>

using namespace std;

class Shape

{public:

virtual double area()const=0;

};

class Circle:public Shape

{public:

Circle(double r):radius(r){}

virtual double area() const{return 3.14159*radius*radius;};

protected:

 double radius;

};

class Square:public Shape

{public:

Square(double s):side(s){}

virtual double area()const{return side*side;}

protected:

 double side;

};

class Rectangle:public Shape

{public:

    Rectangle(double w, double h):width(w),height(h){}

 virtual double area()const{return width*height;}

protected:

 double width,height;

};

class Trapezoid:public Shape



public:

 Trapezoid(double t,double b,double h):top(t),bottom(t),height(h){}

 virtual double area()const{return 0.5*(top*bottom)*height;}

protected:

 double top,bottom,height;

};

class Triangle:public Shape

{

public:

 Triangle(double w,double h):width(w),height(h){}

 virtual double area()const{return 0.5*width*height;}

protected:

 double width,height;

};

int main()

{ Circle circle(12.6);

  Square square(3.5);

  Rectangle rectangle(4.5,8.4);

  Trapezoid trapezoid(2.0,4.5,3.2);

  Triangle triangle(4.5,8.4);

  Shape *pt[5]={&circle,&square,&rectangle,&trapezoid,&triangle};]

  double areas=0.0;

  for(int i=0;i<5;i++)

  {areas=areas+pt[i]->area();}

  cout<<"total of all area="<<areas<<endl;

  return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐