c++设计一个Point类,包含数据成员x,y,写出构造函数、拷贝构造函数。 再设计一个Rect类(矩形),包含代表左上角顶点的Point类型的数据成员p1,长double len,宽double width及其它必要的数据成员(自己考虑)。写出构造函数、拷贝构造函数,计算矩形面积的函数,计算矩形周长的函数,返回矩形其它顶点的函数(返回类型为Point)。在主函数中创建Rect对象,测试相关功能。
时间: 2024-04-21 18:29:10 浏览: 83
好的,我来给您展示一下代码:
```cpp
#include<iostream>
using namespace std;
class Point{
public:
int x, y;
Point(int a, int b) : x(a), y(b) {}
Point(const Point& p) : x(p.x), y(p.y) {}
};
class Rect{
public:
Point p1;
double len, width;
Rect(Point p, double l, double w) : p1(p), len(l), width(w) {}
Rect(const Rect& r) : p1(r.p1), len(r.len), width(r.width) {}
double area() {
return len * width;
}
double perimeter() {
return 2 * (len + width);
}
Point otherVertex() {
Point p(p1.x + len, p1.y + width);
return p;
}
};
int main() {
Point p(1, 2);
Rect r(p, 3, 4);
cout << "Area: " << r.area() << endl;
cout << "Perimeter: " << r.perimeter() << endl;
Point other = r.otherVertex();
cout << "Other Vertex: (" << other.x << ", " << other.y << ")" << endl;
return 0;
}
```
这里我们先定义了 `Point` 类,包含两个数据成员 `x` 和 `y`,然后实现了构造函数和拷贝构造函数。
接着定义了 `Rect` 类,包含一个 `Point` 类型的数据成员 `p1`,以及长 `len` 和宽 `width`,同时实现了构造函数和拷贝构造函数。并且我们还定义了计算矩形面积、周长和返回其它顶点的函数。
最后在 `main` 函数中创建 `Rect` 对象,并测试相关功能。
阅读全文