一道关于类的友元的C++题目

2024-12-19 10:33:03
推荐回答(2个)
回答1:

g(x*)是x的友元函数,却用来对自己的成员变量i累加,有必要吗?为什么不把累加的操作放在x的内部,而让这个函数作为y的友元函数呢?
如果按照原来的要求,可以写出这样的代码:
class X;
class Z;
class Y
{
public:
void g(X* px);

};

class Z
{
public:
void f(X* px);
void h(X* px);
};

class X
{
public:
friend class Z;
friend void Y::g(X* px);
friend void Z::h(X* px);

private:
int i;
};

void Y::g(X* px)
{
px->i++;
}

void Z::f(X* px)
{
px->i += 5;
}

void Z::h(X* px)
{
px->i += 10;
}
代码顺序不能颠倒!!

回答2:

ls 答非所问