Box类 - 属性:长度 宽度 高度 - 方法: 重载+运算符(用于把两个Box对象相加) - 方法:赋值函数( 赋值长度 宽度 高度 ) - 方法:计算体积 - 派生类Rectangle - 方法:计算面积与周长 ### 题目要求 - 重载 + 运算符( 用于把两个Box对象相加 ) - 代码中执行加法时,需要通过类似c = a + b的进行Box类的加法操作 ### 输入输出格式 #### 输入格式 第一个水箱的长度 宽度 与 高度 第二个水箱的长度 宽度 与 高度 #### 输出格式 第三个水箱的长度 宽度 与 高度 三个水箱的体积 (保留一位小数) #### 输入输出样例 ##### 输入样例 1.1 2.3 3.3 4.2 3.1 4.3 ##### 输出样例 5.3 5.4 7.6 8.3 56.0 217.5 c++代码实现
时间: 2024-02-18 20:59:52 浏览: 56
CSS -webkit-box-orient: vertical属性编译后丢失问题详解
好的,以下是C++代码实现:
```cpp
#include <iostream>
using namespace std;
class Box {
public:
float length;
float width;
float height;
Box() : length(0), width(0), height(0) {}
Box(float l, float w, float h) : length(l), width(w), height(h) {}
void setValue(float l, float w, float h) {
length = l;
width = w;
height = h;
}
float volume() {
return length * width * height;
}
Box operator+(const Box& b) {
Box res;
res.length = length + b.length;
res.width = width + b.width;
res.height = height + b.height;
return res;
}
};
class Rectangle : public Box {
public:
Rectangle() : Box() {}
Rectangle(float l, float w, float h) : Box(l, w, h) {}
float area() {
return length * width;
}
float perimeter() {
return 2 * (length + width);
}
};
int main() {
float 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;
printf("%.1f %.1f %.1f\n", b3.length, b3.width, b3.height);
printf("%.1f %.1f %.1f", b1.volume() + b2.volume(), b1.volume(), b2.volume());
return 0;
}
```
代码中首先定义了一个Box类,包含长度、宽度和高度属性,以及计算体积、重载+运算符和赋值函数的方法。然后定义了一个Rectangle类,继承自Box类,并添加了计算面积和周长的方法。在主函数中,首先读入两个Box对象的长度、宽度和高度,然后创建这两个Box对象,执行加法操作得到第三个Box对象,最后输出第三个Box对象的长度、宽度和高度,以及三个Box对象的体积。注意输出时需要保留一位小数。
阅读全文