编程实现:设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,根据坐标能计算矩形的面积。请提交完整的程序代码(要求包含类的组合、组合类的构造函数、组合类的复制构造函数。题意中,矩形的两条边分别与平面的X轴、Y轴平行)。
时间: 2024-03-14 14:43:04 浏览: 75
下面是一个基于C++的Rectangle矩形类的实现,包含组合、组合类的构造函数和复制构造函数,计算矩形面积的方法为getArea():
```cpp
#include<iostream>
using namespace std;
class Point {
private:
int x, y;
public:
Point(int x, int y) {
this->x = x;
this->y = y;
}
int getX() {
return x;
}
int getY() {
return y;
}
};
class Rectangle {
private:
Point *leftBottom;
Point *rightTop;
public:
Rectangle(Point *lb, Point *rt) {
leftBottom = lb;
rightTop = rt;
}
Rectangle(Rectangle& r) {
leftBottom = new Point(r.leftBottom->getX(), r.leftBottom->getY());
rightTop = new Point(r.rightTop->getX(), r.rightTop->getY());
}
~Rectangle() {
delete leftBottom;
delete rightTop;
}
int getArea() {
int length = rightTop->getX() - leftBottom->getX();
int width = rightTop->getY() - leftBottom->getY();
return length * width;
}
};
int main() {
Point lb(0, 0);
Point rt(3, 4);
Rectangle r1(&lb, &rt);
Rectangle r2 = r1;
cout << "r1的面积是:" << r1.getArea() << endl;
cout << "r2的面积是:" << r2.getArea() << endl;
return 0;
}
```
该程序中,Point类表示一个点,Rectangle类表示一个矩形,其中Rectangle类包含两个Point类型的指针leftBottom和rightTop,分别表示矩形的左下角和右上角。构造函数Rectangle(Point *lb, Point *rt)用于初始化矩形的左下角和右上角,复制构造函数Rectangle(Rectangle& r)用于复制一个矩形对象,计算矩形面积的方法为getArea()。在main函数中,首先创建一个Rectangle对象r1,然后利用复制构造函数创建一个新的Rectangle对象r2,并分别输出两个Rectangle对象的面积。
阅读全文