友元的问题!!!!
/*5-13 定义类X、Y、Z,函数h(X*),满足:类X有私有成员i,Y的成员函数g(X*)是X的友元函数,
实现对X的成员i加1,类Z是类X的友元类,其成员函数f(X*)实现对X的成员i加5,函数h(X*)是X的友元函数,
实现对X的成员i加10。在一个文件中定义和实现类,在另一个文件中实现main()函数。*/
#include <iostream.h>
class X;
int H(X *px);
class Z
{
public:
int F(X *px)
{
return (px->i + 5);
}
};
class Y
{
public:
int G(X *px)
{
return (px->i + 1);
}
};
class X
{
int i;
public:
X(int num = 0)
{
i = num;
}
int Geti()
{
return i;
}
friend int Y :: G(X *px);
friend class Z;
friend int H(X *px);
};
int H(X *px)
{
return (px->i + 10);
}
main()
{
X xx;
X *px = &xx;
Y yy;
Z zz;
cout << "经过X,i=" << px->Geti();
cout << "经过Y,i=" << yy.G(px);
cout << "经过Z,i=" << zz.F(px);
cout << "经过函数H,i=" << H(px);
}
感觉友元太难了,郁闷,请大家帮我一下,谢谢了.