定义类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()函数。
//文件1 df513.h
- class X;//前向引用类
- class Y
- {
- public:
- void g(X*);
- };
- class X
- {
- private:
- int i;
- public:
- X(){i=0;}
- friend void h(X*);
- friend void Y::g(X*);
- friend class Z;
- };
- class Z
- {
- public:
- void f(X*);
- };
- void Y::g(X*x)
- {
- x->i++;
- cout<<"i="<<x->i<<endl;
- }
- void Z::f(X*x)
- {
- x->i+=5;
- cout<<"i="<<x->i<<endl;
- }
- void h(X*x)
- {
- x->i+=10;
- cout<<"i="<<x->i<<endl;
- }
//文件2 513.cpp
- #include<iostream>
- using namespace std;
- #include"df513.h"
- void main()
- {
- X x;
- Y y;
- Z z;
- h(&x);
- y.g(&x);
- z.f(&x);
- }