C 成员充当朋友



f是结构y的成员函数,并在struct x中声明为朋友。为什么f不能按预期访问x的私人成员?

请帮助我了解如何有效地使会员功能朋友成为朋友。我很容易地找到了作为朋友的全局函数的访问示例,而不是成员功能。

struct X;
struct Y {
    void f(X* a);
};
struct X {
private:
    int i;
public:
    friend void Y::f(X* a);
};
void Y::f(X* x) {
    x->i = 0; // Error: member "X::i" (declared at line 9) is inaccessible
}

不需要虚拟吗?我可能错了。

最新更新