完成代码并制定确认动作的main函数,以便像注释的内容一样动作

在下面的代码中,IntPoint是表示二维平面上的点的类,x、y是保存平面上的坐标的成员,Rectangle是未旋转的长方形表现类,左-角为corner,宽度和高度分别为width和height。

#include <iostream>
class IntPoint {
public:
    int x; // x 坐标
    int y; // y 坐标
    IntPoint(int x, int y): x(x), y(y) {}
};
class Rectangle {
    IntPoint corner; // 长方形左-下角点
    int width; // 长方形的宽 
    int height; // 长方形的高 
public:
    Rectangle(IntPoint pt, int w, int h):
        corner(pt),
        width((w < 0) ? 0 : w), height((h < 0) ? 0 : h) {}
    int perimeter() {
        return 2*width + 2*height;
    }
    int area() {
        return width * height;
    }
    int get_width() {
        return width;
    }
    int get_height() {
        return height;
    }
    // 如果当前实例矩形和r重叠,则为true否则为false
    bool intersect(Rectangle r) {
        // 编写代码
    }
    // 返回对角线的长度( int型)
    int diagonal() {
        // 编写代码
    }
    // 返回矩形中心点的坐标为IntPoint型
    IntPoint center() {
        // 编写代码
    }
// 当前实例四角形的内部(包括边界)有pt的话就是true, 否则就是false
    bool is_inside(IntPoint pt) {
        // 编写代码 
    }
};


代码补充如下

#include <iostream>
#include <math.h>
class IntPoint {
public:
    int x; // x 坐标
    int y; // y 坐标
    IntPoint(int x, int y): x(x), y(y) {}
};
class Rectangle {
    IntPoint corner; // 长方形左-下角点
    int width; // 长方形的宽 
    int height; // 长方形的高 
public:
    Rectangle(IntPoint pt, int w, int h):
      corner(pt),
          width((w < 0) ? 0 : w), height((h < 0) ? 0 : h) {}
      int perimeter() {
          return 2*width + 2*height;
      }
      int area() {
          return width * height;
      }
      int get_width() {
          return width;
      }
      int get_height() {
          return height;
      }
      // 如果当前实例矩形和r重叠,则为true否则为false
      bool intersect(Rectangle r) {
          // 编写代码
          if(r.x <= corner.x + width && r.y <= corner.y + height)
              return true;
          return false;
      }
      // 返回对角线的长度( int型)
      int diagonal() {
          // 编写代码
          return sqrt((double)(width*width + height*height));
      }
      // 返回矩形中心点的坐标为IntPoint型
      IntPoint center() {
          // 编写代码
          return IntPoint(corner.x + width/2,corner.y + height/2);
      }
      // 当前实例四角形的内部(包括边界)有pt的话就是true, 否则就是false
      bool is_inside(IntPoint pt) {
          // 编写代码 
          if (corner.x <= pt.x && corner.y <= pt.y && pt.x <= corner.x+width && pt.y <=corner.y+height  )
            return true;
          return false;
      }
};