c++请封装一个矩形类,属性:长 + 宽 ,行为:求面积。 需求:如果有两个矩形,求一个较大矩形并输出其面积。用set方法与get方法帮我实现
时间: 2024-03-23 18:36:07 浏览: 45
矩形面积 (用C++编写的)
好的,这里是一个使用 getter 和 setter 方法实现的封装矩形类的代码,可以满足你的需求:
```cpp
class Rectangle {
private:
double length;
double width;
public:
Rectangle() {}
void setLength(double l) { length = l; } // 设置长
void setWidth(double w) { width = w; } // 设置宽
double getLength() const { return length; } // 获取长
double getWidth() const { return width; } // 获取宽
double getArea() const { return length * width; } // 计算面积
bool operator>(const Rectangle& other) const { return getArea() > other.getArea(); } // 重载大于运算符
};
```
我们定义了一个 `Rectangle` 类,它有两个私有属性 `length` 和 `width`,并在构造函数中不进行初始化。我们还定义了四个公有方法,分别是 `setLength()`、`setWidth()`、`getLength()` 和 `getWidth()`,用于设置和获取矩形的长和宽,以及一个 `getArea()` 方法来计算矩形的面积。最后,我们重载了 `>` 运算符来比较两个矩形的面积大小。
接下来,我们可以创建两个矩形对象,通过调用 setter 方法设置它们的长和宽,比较它们的面积并输出较大矩形的面积:
```cpp
Rectangle rect1;
rect1.setLength(3);
rect1.setWidth(4);
Rectangle rect2;
rect2.setLength(4);
rect2.setWidth(5);
Rectangle maxRect = rect1 > rect2 ? rect1 : rect2; // 比较两个矩形的面积
double maxArea = maxRect.getArea(); // 获取较大矩形的面积
std::cout << "The area of the larger rectangle is " << maxArea << std::endl; // 输出较大矩形的面积
```
输出结果应该为:
```
The area of the larger rectangle is 20
```
希望这个代码可以帮助你!
阅读全文