1

我有一个任务,我觉得非常困难。任何帮助,将不胜感激。

通过创建 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)

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

4

1 回答 1

1

不,不是,从要求看来,您需要Square构造函数将 4 个点作为参数:

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

Square 需要四个 Point 顶点

正确的?

于 2012-07-29T03:02:11.447 回答