在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。