目描述 - Box类 - 属性:长度 宽度 高度 - 方法: 重载`+`运算符(用于把两个Box对象相加) - 方法:赋值函数( 赋值长度 宽度 高度 ) - 方法:计算体积 - 派生类Rectangle - 方法:计算面积与周长 ### 题目要求 - 重载 + 运算符( 用于把两个Box对象相加 ) - 代码中执行加法时,需要通过类似`c = a + b`的进行Box类的加法操作 ### 输入输出格式 #### 输入格式 第一个水箱的长度 宽度 与 高度 第二个水箱的长度 宽
时间: 2024-02-18 21:59:25 浏览: 55
度与高度
#### 输出格式
输出两个水箱相加后的体积、面积与周长,每个结果占一行,保留两位小数。
### 输入样例
```
2 3 4
5 6 7
```
### 输出样例
```
The sum of the two boxes is: 92.00
The sum of the two boxes' surface area is: 94.00
The sum of the two boxes' perimeter is: 112.00
```
### 代码示例
```cpp
#include<iostream>
#include<iomanip>
using namespace std;
class Box {
public:
double length, width, height;
Box() {}
Box(double l, double w, double h) {
length = l;
width = w;
height = h;
}
Box operator+(const Box& b) {
return Box(length + b.length, width + b.width, height + b.height);
}
Box& operator=(const Box& b) {
length = b.length;
width = b.width;
height = b.height;
return *this;
}
double getVolume() {
return length * width * height;
}
};
class Rectangle : public Box {
public:
double getArea() {
return length * width;
}
double getPerimeter() {
return 2 * (length + width);
}
};
int main() {
double l1, w1, h1, l2, w2, h2;
cin >> l1 >> w1 >> h1 >> l2 >> w2 >> h2;
Box b1(l1, w1, h1), b2(l2, w2, h2);
Box b3 = b1 + b2;
cout << fixed << setprecision(2);
cout << "The sum of the two boxes is: " << b3.getVolume() << endl;
Rectangle r1;
r1.length = b1.length;
r1.width = b1.width;
Rectangle r2;
r2.length = b2.length;
r2.width = b2.width;
double area = r1.getArea() + r2.getArea();
double perimeter = r1.getPerimeter() + r2.getPerimeter();
cout << "The sum of the two boxes' surface area is: " << area << endl;
cout << "The sum of the two boxes' perimeter is: " << perimeter << endl;
return 0;
}
```
阅读全文