设计一个CRectangle 类,具休要求为; 定义两个私有数据成员:宜w和高h (2)定义私有静态数据成 员 totalNumber 和 totalArea.用以记录矩形的总个数和总面积: (3)定义带参构造两数,可根据给定的宽和高构造矩形对象; 定义无参析构西数,对象消亡则减少总个数,减少总面积: (5)定 义 PrintTotalo用于输出矩形的总面积和总个数。
时间: 2024-03-26 13:34:19 浏览: 97
好的,以下是设计的CRectangle类的代码实现:
```c++
class CRectangle {
private:
int w; // 宽
int h; // 高
static int totalNumber; // 总个数
static int totalArea; // 总面积
public:
CRectangle(int width, int height) : w(width), h(height) {
totalNumber++; // 矩形总数加1
totalArea += w * h; // 矩形总面积累加
}
~CRectangle() {
totalNumber--; // 矩形总数减1
totalArea -= w * h; // 矩形总面积减少
}
static void PrintTotal() {
cout << "Total number of rectangles: " << totalNumber << endl;
cout << "Total area of rectangles: " << totalArea << endl;
}
};
int CRectangle::totalNumber = 0;
int CRectangle::totalArea = 0;
```
在这个类中,我们定义了两个私有数据成员 `w` 和 `h`,分别表示矩形的宽和高。我们还定义了两个私有静态成员 `totalNumber` 和 `totalArea`,用于记录矩形的总个数和总面积。
在构造函数中,我们接收两个参数 `width` 和 `height`,并根据这两个参数构造矩形对象。在构造函数中,我们将矩形总数加1,将矩形总面积累加。
在析构函数中,我们将矩形总数减1,将矩形总面积减少。
最后,我们定义了一个静态函数 `PrintTotal`,用于输出矩形的总面积和总个数。
使用该类时,可以按如下方式调用:
```c++
CRectangle rect1(3, 4);
CRectangle rect2(5, 6);
CRectangle::PrintTotal(); // 输出总个数和总面积
```
输出结果如下:
```
Total number of rectangles: 2
Total area of rectangles: 38
```
阅读全文