声明一个长方体类Box,该类有长(Length),宽(width),高(high)三个数据成员,类中有获取数据和显示长,宽,高的成员函数,还有计算长方体表面积和体积的成员函数。请按上述要求声明该长方体类,并在主函数中定义该类的三个对象,并输出显示这三个长方体的长,宽,高信息,计算其面积和体积。且分析该代码的优劣
时间: 2023-10-08 08:11:37 浏览: 342
好的,我理解您的问题了。以下是您所要求的长方体类Box的声明和主函数中的代码:
```cpp
#include <iostream>
using namespace std;
class Box {
private:
double Length;
double Width;
double High;
public:
void setLength(double length) { Length = length; }
void setWidth(double width) { Width = width; }
void setHigh(double high) { High = high; }
double getLength() { return Length; }
double getWidth() { return Width; }
double getHigh() { return High; }
double getSurfaceArea() { return 2 * (Length * Width + Length * High + Width * High); }
double getVolume() { return Length * Width * High; }
};
int main() {
Box box1, box2, box3;
box1.setLength(3.2);
box1.setWidth(4.5);
box1.setHigh(2.1);
box2.setLength(5.6);
box2.setWidth(1.4);
box2.setHigh(2.3);
box3.setLength(2.1);
box3.setWidth(3.4);
box3.setHigh(4.5);
cout << "Box1: Length=" << box1.getLength() << ", Width=" << box1.getWidth() << ", High=" << box1.getHigh() << endl;
cout << "Surface Area of Box1: " << box1.getSurfaceArea() << ", Volume of Box1: " << box1.getVolume() << endl;
cout << "Box2: Length=" << box2.getLength() << ", Width=" << box2.getWidth() << ", High=" << box2.getHigh() << endl;
cout << "Surface Area of Box2: " << box2.getSurfaceArea() << ", Volume of Box2: " << box2.getVolume() << endl;
cout << "Box3: Length=" << box3.getLength() << ", Width=" << box3.getWidth() << ", High=" << box3.getHigh() << endl;
cout << "Surface Area of Box3: " << box3.getSurfaceArea() << ", Volume of Box3: " << box3.getVolume() << endl;
return 0;
}
```
在主函数中,我们定义了三个Box类的对象box1、box2、box3,并分别设置它们的长、宽、高。然后,我们使用对象的成员函数获取它们的长、宽、高,并计算它们的表面积和体积,最后输出结果。
这段代码的优点是,它把长方体的数据和操作封装在了一起,我们可以通过类的对象来操作和访问这些数据,代码可读性较好。此外,该代码使用了私有数据成员和公有成员函数的封装方式,使得数据和函数的访问权限得到了良好的控制。
该代码的缺点主要是在于它没有考虑长方体的数据合法性,例如长、宽、高是否为正数等,这可能会导致计算表面积和体积的结果不准确。另外,它没有提供构造函数和析构函数,这可能会导致一些潜在的内存泄漏问题。
阅读全文