定义一个点类Point,包括x坐标和y坐标(int)。定义一个CRect类,代表一个矩形,要求CRect类中有代表矩形的左上角坐标(x1,y1)和右下角坐标(x2,y2)点类的对象,要求CRect类中有两个成员函数RectHeight()和RectWidth(),通过这两个函数能得到矩形的高和宽;此外还需要有求此矩形面积的成员函数。 要求每个类至少有两个以上构造函数,在main函数中测试他门的每一个成员函数。
时间: 2023-04-12 18:01:04 浏览: 124
以下是Point类和CRect类的完整代码:
```c++
#include <iostream>
using namespace std;
class Point {
public:
int x;
int y;
Point() {
x = 0;
y = 0;
}
Point(int x, int y) {
this->x = x;
this->y = y;
}
};
class CRect {
public:
Point p1;
Point p2;
CRect() {
p1 = Point(0, 0);
p2 = Point(0, 0);
}
CRect(Point p1, Point p2) {
this->p1 = p1;
this->p2 = p2;
}
CRect(int x1, int y1, int x2, int y2) {
p1 = Point(x1, y1);
p2 = Point(x2, y2);
}
int RectHeight() {
return abs(p2.y - p1.y);
}
int RectWidth() {
return abs(p2.x - p1.x);
}
int RectArea() {
return RectHeight() * RectWidth();
}
};
int main() {
Point p1(1, 2);
Point p2(3, 4);
CRect rect1(p1, p2);
CRect rect2(5, 6, 7, 8);
cout << "rect1 height: " << rect1.RectHeight() << endl;
cout << "rect1 width: " << rect1.RectWidth() << endl;
cout << "rect1 area: " << rect1.RectArea() << endl;
cout << "rect2 height: " << rect2.RectHeight() << endl;
cout << "rect2 width: " << rect2.RectWidth() << endl;
cout << "rect2 area: " << rect2.RectArea() << endl;
return 0;
}
```
在这个程序中,我们定义了一个Point类和一个CRect类。Point类包含x和y坐标,CRect类包含左上角和右下角的Point对象。CRect类还有RectHeight()、RectWidth()和RectArea()三个成员函数,分别用于计算矩形的高、宽和面积。
在main函数中,我们创建了两个CRect对象,并测试了每个对象的成员函数。
阅读全文