本项目涉及设计与实现两个C++类:基本的矩形类(Rectangle)用于处理二维空间中的几何计算;衍生自矩形类的立方体类(Cube),则扩展到三维,提供关于立方体的相关操作和属性。这两者为理解和学习面向对象编程中的继承概念提供了良好的案例研究基础。
在这个编程任务中我们需要创建两个类:一个基类 `Rectangle` 表示矩形,另一个派生类 `Cube` 表示正方体。
**1. 基类 Rectangle**
- 包含四个私有成员变量:`x1`, `y1`, `x2`, 和 `y2` 分别代表矩形左下角和右上角的坐标。
- 公有方法包括:
- 构造函数,用于初始化矩形坐标,默认值为0;
- 函数 `double getwidth()` 返回矩形宽度;
- 函数 `double getlength()` 返回矩形长度;
- 方法 `void display()` 输出矩形的坐标和长宽信息。
**2. 派生类 Cube**
- 继承了基类 Rectangle 的所有属性与方法。
- 包含私有成员变量:`name`(字符串类型) 和 `h`(高度,双精度浮点型);
- 公有方法包括:
- 构造函数,默认值为0,接受矩形坐标、立方体名称和高度作为参数;
- 函数 `void set(char*, double)` 修改立方体的名称与高度;
- 方法 `void display()` 输出立方体信息(包含底面积、名称、高度以及体积);
- 函数 `Cube add(Cube &S)` 将另一个立方体的高度加到当前对象上,并返回更新后的自身。
**主函数要求**
- 创建一个矩形类实例 A,坐标为 (10, 10, 30, 40)。
- 创建两个正方体 B 和 C。B 的坐标是(20, 10, 30, 40),名称为 Box,高度为60;C 是通过复制 B 来创建的实例。
- 修改对象 C 的属性:将它的名字改为 Trunk,高度设为95。
- 使用 `display` 方法输出 A、B 和 C 的信息,并计算它们的体积。
- 创建正方体 D 并使用函数 add 将立方体 B 和 C 高度相加赋值给 D。最后显示并打印出 D 及其体积。
代码实现:
```cpp
#include
#include
using namespace std;
class Rectangle {
double x1, y1;
double x2, y2;
public:
Rectangle(double a = 0, double b = 0, double c = 0, double d = 0) :
x1(a), y1(b), x2(c), y2(d) {}
double getwidth() { return abs(x1 - x2); }
double getlength() { return abs(y1 - y2); }
void display() {
cout << 矩形 << endl;
cout << 左下角坐标: << x1 << , << y1 << endl;
cout << 右上角坐标: << x2 << , << y2 << endl;
cout <<长与宽: << abs(x1 - x2) << , <