在C++中,friend
关键字用于授权其他类或函数访问一个类的私有成员。被授权的类或函数称为友元类或友元函数。
使用friend
关键字,可以在一个类的定义中声明其他类或函数为友元,使得这些友元类或函数能够访问该类的私有成员(私有成员包括私有变量和私有函数)。
友元函数的声明方式为:
class MyClass {
friend void friendFunction();
};
友元类的声明方式为:
class MyClass {
friend class FriendClass;
};
友元类的所有成员函数都可以访问声明类的私有成员。
需要注意的是,友元关系是单向的,即如果类A声明类B为友元,则类B并不自动声明类A为友元。如果需要双向访问,则需要分别在两个类中声明对方为友元。
友元关系破坏了封装性,因此应谨慎使用。只有在确实需要其他类或函数访问私有成员时,才应该使用友元。