建立一个形状类广场

我有一项任务,我觉得很困难。 任何帮助,将不胜感激。

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

在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)

我想知道这是否看起来是正确的基于什么任务是问?


不,从它的需求看来,你需要Square构造函数以4个点作为参数:

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

正方形需要四个点顶点

对?

链接地址: http://www.djcxy.com/p/61685.html

上一篇: build a shape class Square

下一篇: Using a Bezier Curve to draw a spiral