在下面的代码中,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) {
// 编写代码
}
};