定义类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>
using namespace std;
class X
{
public:
X():i(0)
{}
friend class Y;
friend class Z;
friend void h(X * p);
void show()
{
cout<<i<<endl;
}
private:
int i;
};
class Y
{
public:
void g(X * p);
};
class Z
{
public:
void f(X *p);
};
void Y::g(X * p)
{
p->i++;
}
void Z::f(X * p)
{
p->i += 5;
}
void h(X * p)
{
p->i += 10;
}
主函数
#include"xyz.h"
int main()
{
X d;
d.show();
Y d1;
d1.g(&d);
d.show();
Z d2;
d2.f(&d);
d.show();
h(&d);
d.show();
}