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++中一种特殊的类,它可以访问另一个类的私有成员。友元类可以被声明为友元类,也可以被声明为友元函数。友元类可以用来实现类之间的信息共享,以及访问另一个类的私有成员。