class Square : public Rectangle
{
  public:
      // Inherited from Rectangle
    double getLength() const;
    double getWidth() const;
    void setLength();
    void setWidth();
    double getCenterX() const;
    double getCenterY() const;
    void SetCenter(double x, double y);

      // Derived members
    Square(double x, double y, double side);
    double GetSide() const;
    void SetSide(double side);

      // Redefined
    virtual double Area() const;
    virtual void Draw() const;
    virtual void Scale(double scale);


  private:
      // Inherited from Rectangle (although not directly accessible in Square)
    double center_x_; // x-coordinate of center point
    double center_y_; // y-coordinate of center point
    double length_;   // "long" sides
    double width_;    // "short" sides

      // Derived member
    double side_;  // length of a side
};