#include<iostream>
using namespace std;
const float PI=3.141593;
class Circle;
class Cylinder{
private:
double h;
public:
Cylinder(double h1) :h(h1){} // 构造函数
void Volume(Circle&ci); // 先声明,函数定义写在Circle定义的后面
};
class Circle{
private:
double x; double y; double r;
public:
Circle(double x1,double y1,double r1) :x(x1),y(y1),r(r1){} // 构造函数
friend void Cylinder::Volume(Circle&ci) ; // ok,声明为友元函数
};
void Cylinder::Volume(Circle&ci) // 定义写在Circle后面,不然不能调用其成员
{
double m=PI*ci.r*ci.r*h;
cout<<"体积为"<<m;
}
int main()
{
Circle ci(12.0,15.0,10.0);
Cylinder cy(10.0) ;
cy.Volume(ci) ; // 调用
while(1);
return 0;
}
using namespace std;
const float PI=3.141593;
class Circle;
class Cylinder{
private:
double h;
public:
Cylinder(double h1) :h(h1){} // 构造函数
void Volume(Circle&ci); // 先声明,函数定义写在Circle定义的后面
};
class Circle{
private:
double x; double y; double r;
public:
Circle(double x1,double y1,double r1) :x(x1),y(y1),r(r1){} // 构造函数
friend void Cylinder::Volume(Circle&ci) ; // ok,声明为友元函数
};
void Cylinder::Volume(Circle&ci) // 定义写在Circle后面,不然不能调用其成员
{
double m=PI*ci.r*ci.r*h;
cout<<"体积为"<<m;
}
int main()
{
Circle ci(12.0,15.0,10.0);
Cylinder cy(10.0) ;
cy.Volume(ci) ; // 调用
while(1);
return 0;
}