在C++中,friend class用于聲明一個類為另一個類的友元類。這意味著友元類可以訪問包含它的類的私有成員和受保護成員。友元類可以訪問類的私有成員和受保護成員,但不是繼承關系,只是單純的友元關系。
友元類的聲明通常在類的定義中,在類的主體中使用friend
關鍵字加上類名來聲明友元類。友元類可以訪問聲明為其友元的類的所有成員,而不管其訪問級別是私有、受保護還是公共。
下面是一個友元類的示例:
class A {
private:
int x;
protected:
int y;
public:
A() : x(0), y(0) {}
friend class B;
};
class B {
public:
void accessA(A& a) {
// B類可以訪問A類的私有成員和受保護成員
a.x = 10;
a.y = 20;
}
};
int main() {
A a;
B b;
b.accessA(a);
return 0;
}
在上面的示例中,類B被聲明為類A的友元類,因此類B可以訪問類A的私有成員x和受保護成員y。