编写一个程序,实现一个矩形类Rectangle, 它有私有数据int w, int h, 设计一个友元函数area求出矩形的面积。 实现一个类Manage,他是类Rectangle的友元类, 有成员函数getarea求矩形的面积。 在主函数进行测试。
时间: 2024-05-05 12:21:06 浏览: 36
以下是题目所要求的程序实现:
```cpp
#include <iostream>
using namespace std;
class Rectangle; // 预先声明Rectangle类
// 友元函数,计算矩形的面积
int area(Rectangle r) {
return r.w * r.h;
}
class Manage {
public:
// 成员函数,调用友元函数求矩形的面积
int getarea(Rectangle r) {
return area(r);
}
};
class Rectangle {
private:
int w, h; // 宽和高
public:
// 构造函数
Rectangle(int w, int h) {
this->w = w;
this->h = h;
}
// 定义Manage为友元类
friend class Manage;
};
int main() {
Rectangle r(5, 4); // 创建一个矩形对象
Manage m; // 创建一个Manage对象
int area = m.getarea(r); // 调用成员函数计算面积
cout << "矩形的面积为:" << area << endl; // 输出结果
return 0;
}
```
程序先定义了一个Rectangle类,其中包含了矩形的宽和高,还定义了一个友元函数area,用于计算矩形的面积。接着定义了一个Manage类,其中定义了一个成员函数getarea,用于调用友元函数area计算矩形的面积。Rectangle类中将Manage类设为友元类,从而使得Manage类可以访问Rectangle类的私有成员。在主函数中,创建了一个矩形对象和一个Manage对象,调用成员函数计算矩形的面积并输出结果。
阅读全文