3.21c++上机实验 友元函数的使用(1)
类Z是类X的友元类,其成员函数f(X*)实现对X的成员i加5,函数h(X*)是X的友元函数,实现对X的成员i加10。在一个文件中定义和实现类,在另一个文件中实现main()函数。
//头文件 xyz.h
#ifndef XYZ_H_INCLUDED
#define XYZ_H_INCLUDED
#endif // XYZ_H_INCLUDED
#include <cstdio>
class X;
class Y
{
public:
void getx(X* x);
};
class X
{
private:
int i;
public :
void seti()
{
i=0;
}
friend void Y::getx(X* x);
friend class Z;
friend void hx(X *x);
void show()
{
printf("%d\n",i);
}
};
void Y::getx(X *x)
{
x->i=x->i+1;
}
class Z
{
public:
void fx(X *x);
};
void Z::fx(X *x)
{
x->i=x->i+5;
}
void hx(X *x)
{
x->i=x->i+10;
}
//主程序
#include "xyz.h"
using namespace std;
int main()
{
X a;
a.seti();
a.show();
Y b;
b.getx(&a);
a.show();
Z z;
z.fx(&a);
a.show();
hx(&a);
a.show();
return 0;
}