首页 > 试题广场 >

定义类 X、Y、Z,函数 h(X*),满足:类 X 有私有成

[问答题]

定义类 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 "my_x_y_z.h"
void main()
{
X x;
Z z;
z.f(&x);
}
// my_x_y_z.h 文件
#ifndef MY_X_Y_Z_H
class X;
class Y {
void g(X*);
};
class X
{
private:
int i;
public:
X(){i=0;}
friend void h(X*);
friend void Y::g(X*);
friend class Z;
};
void h(X* x) { x->i =+10; }
void Y::g(X* x) { x->i ++; }
class Z {
public:
void f(X* x) { x->i += 5; }
};
#endif // MY_X_Y_Z_H

程序运行输出:无



发表于 2018-04-18 20:51:57 回复(0)