建立一个形状类Square

时间:2012-07-29 02:59:48

标签: c++ shapes

我有一项任务,我发现很难。任何帮助将不胜感激。

通过创建Shape类Circle,Square和Triangle来构建层次结构。对于这些派生类,创建默认构造函数和构造函数,其参数可以使用正确数量的Point对象来适当地初始化形状(即,Circle需要Point中心和半径; Square需要四个Point顶点,而Triangle需要三个Point顶点)。

在main()中,创建以下各项的一个实例:半径为23的圆,带边25的正方形和带边10,20,30的三角形。定义所有这些以使原点( 0,0)在每个对象中的某个位置。显示每个对象的信息。

当我进入main()Square s(25,Point(0,0));

class Square : public Shape
{
  double sides;
  Point cp;

  public:
  Square() : sides(0) {}
  Square(double side, const Point &center) : sides(side), cp(center){}

  void bbox()
  {
     Point bottomright = cp + Point(sides/2, -sides/2);
     Point topleft = cp + Point(-sides/2, sides/2);
     Point topright = cp + Point(sides/2, sides/2);
     Point bottomleft = cp + Point(-sides/2, -sides/2);

     std::cout << "Square::bounding " << bottomright  << topleft << topright << bottomleft;
  }

  double area() {std::cout << "Square::area "; return (sides * sides);}
  double circumference() {std::cout << "Square::perimeter "; return sides + sides + sides + sides;}

};

课程打印出来

Square::area 625
Square::perimeter 100
Square::bounding (12.5,-12.5)(-12.5,12.5)(12.5,12.5)(-12.5,-12.5)

我想知道根据作业的要求,这看起来是否合适?

1 个答案:

答案 0 :(得分:1)

不,它没有,根据要求,你需要Square构造函数取4分作为参数:

Square(const Point& pt1,const Point& pt2,const Point& pt3,const Point& pt4)
  

Square需要四个Point顶点

右?