膨胀的海绵
题目描述
现在有一块长方体状的海绵,长、宽、高分别为l
、w
、h
,这块海绵由于吸水发生了膨胀,长、宽、高分别增加了dx
、dy
、dz
。
补全下列代码中Sponge
类的定义,使得程序输出符合要求。
关于输入
两行,每行三个整数。
第一行三个整数分别表示海绵的长、宽、高;
第二行三个整数分别表示海绵吸水后长、宽、高的变化量。
关于输出
共两行,每行一个整数。
第一行,输出海绵吸水前的体积;
第二行,输出海绵吸水导致的体积变化量
核心技巧
- 本题为类的基础练习题,涉及构造函数及类的成员函数的书写。注意在成员函数中要考虑所有成员变量的修改。
参考答案
#include <iostream>
using std::cin, std::cout, std::endl;
class Sponge {
private:
int l, w, h;
int vol;
public:
int volume() {
return vol;
}
Sponge(int x, int y, int z): l{x}, w{y}, h{z}, vol{x * y * z} {}
Sponge(const Sponge& s) = default;
void expand(int dx, int dy, int dz) {
l += dx;
w += dy;
h += dz;
vol = l * w * h;
}
};
int main() {
int x, y, z;
int dx, dy, dz;
cin >> x >> y >> z;
Sponge s1(x, y, z);
Sponge s2{s1};
cout << s1.volume() << endl;
cin >> dx >> dy >> dz;
s2.expand(dx, dy, dz);
cout << s2.volume() - s1.volume() << endl;
}