用c++完成下列操作: 定义一个rectangle(矩形)类,自行设计它的成员变量和成员函数,实现对矩形对象数量和总面积的实时统计
时间: 2024-10-08 17:23:33 浏览: 110
为了完成这个需求,首先我们需要定义一个Rectangle类,包含长和宽作为其成员变量,以及计算面积、添加矩形到统计、获取总矩形数和总面积等成员函数。下面是一个简单的C++实现示例:
```cpp
#include <iostream>
#include <vector>
class Rectangle {
public:
// 成员变量
double length;
double width;
// 构造函数
Rectangle(double l, double w) : length(l), width(w) {}
// 计算面积
double area() const {
return length * width;
}
private:
static std::vector<Rectangle> rectangles; // 全局静态变量存储所有矩形
// 添加矩形到统计
static void addRectangle(const Rectangle& rect) {
rectangles.push_back(rect);
}
// 获取总矩形数
static int getTotalRectangles() {
return rectangles.size();
}
// 获取总面积
static double getTotalArea() {
double total = 0;
for (const auto& rect : rectangles) {
total += rect.area();
}
return total;
}
};
std::vector<Rectangle> Rectangle::rectangles; // 初始化全局静态向量
// 测试
int main() {
Rectangle rect1(5, 7);
Rectangle rect2(3, 4);
rect1.addRectangle(rect1); // 添加实例到统计
rect2.addRectangle(rect2); // 添加另一个实例到统计
std::cout << "Total rectangles: " << Rectangle::getTotalRectangles() << std::endl;
std::cout << "Total area: " << Rectangle::getTotalArea() << std::endl;
return 0;
}
```
在这个例子中,我们创建了一个Rectangle类,其中`area()`计算矩形的面积,`addRectangle()`将矩形加入全局静态向量`rectangles`用于统计,`getTotalRectangles()`返回矩形的数量,`getTotalArea()`则计算所有矩形的总面积。
阅读全文