c++定义一个圆柱类用友元函数计算面积和体积
时间: 2023-12-20 08:06:34 浏览: 164
以下是一个圆柱类的定义,其中包括了计算面积和体积的友元函数:
```c++
#include <iostream>
using namespace std;
class Cylinder {
private:
double radius; // 圆柱的底面半径
double height; // 圆柱的高度
public:
Cylinder(double r = 0, double h = 0) : radius(r), height(h) {}
friend double area(const Cylinder& c); // 友元函数,用于计算圆柱的表面积
friend double volume(const Cylinder& c); // 友元函数,用于计算圆柱的体积
};
double area(const Cylinder& c) {
double area_bottom = c.radius * c.radius * 3.14159;
double area_side = 2 * c.radius * 3.14159 * c.height;
return 2 * area_bottom + area_side;
}
double volume(const Cylinder& c) {
return c.radius * c.radius * 3.14159 * c.height;
}
int main() {
Cylinder c(2, 5);
cout << "Area: " << area(c) << endl;
cout << "Volume: " << volume(c) << endl;
return 0;
}
```
在这个例子中,我们定义了一个名为 `Cylinder` 的类,其中包括了圆柱的底面半径和高度。然后,我们定义了两个友元函数 `area` 和 `volume`,它们分别用于计算圆柱的表面积和体积。这两个函数都接受一个 `const Cylinder&` 类型的参数,即一个圆柱对象的引用,用于获取圆柱的底面半径和高度。在 `main` 函数中,我们创建了一个半径为 2、高度为 5 的圆柱对象,并分别调用了 `area` 和 `volume` 函数来计算其表面积和体积。
阅读全文