题目描述
定义描述圆的类Circle, 其数据成员为圆心坐标(X,Y)与半径R。再定义一个描述圆柱体的类Cylinder, 其私有数据成员为圆柱体的高H。
定义计算圆柱体体积的成员函数Volume(), 并将Volume()定义为圆类Circle的友元函数,该函数使用圆类对象的半径R来计算圆柱体的体积。
在主函数中定义圆的对象ci, 圆心坐标为(12,15), 半径为10。再定义圆柱体对象cy, 其底面半径与圆半径相同, 高为10。调用Volume()函数计算圆柱体的体积,并显示体积值。
案例代码
#include <iostream>
using namespace std;
class Circle; // 前向声明
class Cylinder {
private:
double H; // 圆柱体的高
public:
Cylinder(double h) : H(h) {
}
friend double Volume(const Circle& c, const Cylinder& cy);
};
class Circle {
private:
double X; // 圆心横坐标
double Y; // 圆心纵坐标
double R; // 圆半径
public:
Circle(double x, double y, double r) : X(x), Y(y), R(r) {
}
friend double Volume(const Circle& c, const Cylinder& cy);
};
double Volume(const Circle& c, const Cylinder& cy) {
return 3.14159 * c.R * c.R * cy.H; // 计算圆柱体的体积
}
int main() {
Circle ci(12, 15, 10); // 创建圆对象
Cylinder cy(10); // 创建圆柱体对象
double volume = Volume(ci, cy); // 调用Volume()函数计算体积
cout << "圆柱体的体积为:" << volume << endl;
return 0;
}