用C++编写一个程序,定义抽象基类Shape,由它派生出5个-查字典问答网
分类选择

来自郭天石的问题

  用C++编写一个程序,定义抽象基类Shape,由它派生出5个派生类:Cricle(圆形),Square(正方形),Rectangle(矩形), Trapezoid (梯形),Triangle(三角形)。用虚函数分别计算图形面积,并

  用C++编写一个程序,定义抽象基类Shape,由它派生出5个派生类:Cricle(圆形),Square(正方形),Rectangle(矩形), Trapezoid (梯形),Triangle(三角形)。用虚函数分别计算图形面积,并求所有图形面积的和.要求用基类指针数组,使它的每一个元素指向一个派生类对象。

2回答
2020-04-09 19:21
我要回答
请先登录
卢京晶

  完全不懂

2020-04-09 19:25:02
管天云

  #include

  usingnamespacestd;

  classShape//定义抽象基类Shape

  {

  public:

  virtualdoublearea()const=0;//纯虚函数

  };

  classCircle:publicShape

  {

  public:

  Circle(doubler):radius(r){}//构造函数

  virtualdoublearea()const//定义虚函数

  {

  return3.14159*radius*radius;

  };

  protected:

  doubleradius;

  };

  classSquare:publicShape//定义Square(正方形)类

  {

  public:

  Square(doubles):side(s){}

  virtualdoublearea()const{returnside*side;}//定义虚函数

  protected:

  doubleside;

  };

  classRectangle:publicShape//定义Rectangle(矩形)类

  {

  public:

  Rectangle(doublew,doubleh):width(w),height(h){}//构造函数

  virtualdoublearea()const{returnwidth*height;}//定义虚函数

  protected:

  doublewidth,height;

  };

  classTrapezoid:publicShape//定义Trapezoid(梯形)类

  {

  public:

  Trapezoid(doublet,doubleb,doubleh):top(t),bottom(t),height(h){}//构造函数

  virtualdoublearea()const{return0.5*(top+bottom)*height;}//定义虚函数

  protected:

  doubletop,bottom,height;//上底、下底与高

  };

  classTriangle:publicShape//定义Triangle(三角形)类

  {

  public:

  Triangle(doublew,doubleh):width(w),height(h){}//构造函数

  virtualdoublearea()const{return0.5*width*height;}//定义虚

  protected:

  doublewidth,height;

  };

  intmain()

  {

  Circlecircle(12.6);//建立Circle类对象circle

  Squaresquare(3.5);//建立Square类对象square

  Rectanglerectangle(4.5,8.4);//建立Rectangle类对象rectangle

  Trapezoidtrapezoid(2.0,4.5,3.2);//建立Trapezoid类对象trapezoid

  Triangletriangle(4.5,8.4);//建立Triangle类对象

  Shape*pt[5]={&circle,&square,&rectangle,&trapezoid,&triangle};//定义基类指针数组pt,使它每一个元素指向一个派生类对象

  doubleareas=0.0;//areas为总面积

  for(inti=0;iarea();

  }

  cout

2020-04-09 19:27:43

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •