我现在将两个类互为友元类,但其中一个类无法读取另一个类的私有变量,怎么办
时间: 2024-03-29 22:14:48 浏览: 62
如果你想让一个类能够访问另一个类的私有变量,可以在该类中定义一个友元函数,将另一个类声明为友元类。然后,在友元函数中就可以访问该类的私有变量了。如下所示:
```cpp
class B; // 前向声明
class A{
public:
void foo(B& b);
};
class B{
private:
int x;
friend void A::foo(B& b);
};
void A::foo(B& b){
int y = b.x; // 可以访问B的私有变量x
}
```
在这个例子中,A是B的友元类,并且在A中定义了一个名为foo的成员函数,它可以访问B的私有变量x。
阅读全文