C++中的友元类(Friend Class)是一种特殊的类,它可以访问另一个类的私有成员。友元类可以被声明为友元类,也可以被声明为友元函数。
定义友元类
要定义一个友元类,可以使用关键字“friend”,并在其后加上类名,如下所示:
class ClassName
{
friend ClassFriend;
};
在上面的代码中,ClassName类的友元类是ClassFriend。这意味着ClassFriend类可以访问ClassName类的私有成员。
声明友元函数
友元函数也可以被声明为友元类,如下所示:
class ClassName
{
friend void FunctionName();
};
在上面的代码中,ClassName类的友元函数是FunctionName。这意味着FunctionName函数可以访问ClassName类的私有成员。
使用友元类
友元类可以用来实现类之间的信息共享,以及访问另一个类的私有成员。举例来说,如果有两个类A和B,B类可以被声明为A类的友元类,这样B类就可以访问A类的私有成员。例如:
class A
{
private:
int a;
public:
void setA(int n)
{
a = n;
}
friend class B;
};
class B
{
public:
void printA(A& a)
{
std::cout << a.a << std::endl;
}
};
int main()
{
A a;
a.setA(10);
B b;
b.printA(a);
return 0;
}
在上面的代码中,A类的私有成员a可以被B类访问,因为B类被声明为A类的友元类。
友元类是C++中一种特殊的类,它可以访问另一个类的私有成员。友元类可以被声明为友元类,也可以被声明为友元函数。友元类可以用来实现类之间的信息共享,以及访问另一个类的私有成员。