📅  最后修改于: 2023-12-03 15:13:45.107000             🧑  作者: Mango
在C++中,friend
关键字用于在类之间建立友好关系。friend
关键字允许一个类或函数访问另一个类的私有成员,即使它不是该类的成员函数或成员变量。
可以将一个函数声明为另一个类的友元函数,以便它可以访问该类的私有和受保护成员。下面是一个示例代码片段:
class MyClass {
private:
int privateData;
friend void friendFunction(MyClass& obj);
};
void friendFunction(MyClass& obj) {
obj.privateData = 42;
}
在上面的代码中,MyClass
的私有成员privateData
被声明为friendFunction
的友元。因此,friendFunction
可以直接访问和修改privateData
。
除了函数,还可以将一个类声明为另一个类的友元类。这允许友元类访问该类的私有和受保护成员。以下是一个示例代码片段:
class MyClass {
private:
int privateData;
friend class FriendClass;
};
class FriendClass {
public:
void accessPrivateData(MyClass& obj) {
obj.privateData = 42;
}
};
在上面的代码中,MyClass
声明了FriendClass
为友元类。这使得FriendClass
可以访问和修改MyClass
的privateData
。
使用friend
关键字需要小心使用,因为它破坏了封装性。友元函数或友元类可以绕过封装机制,直接访问和修改私有成员,这可能使代码更难以维护和理解。
因此,在使用friend
关键字时要注意以下几点:
friend
关键字在C++中用于建立类之间的友好关系,允许一个类或函数访问另一个类的私有成员。它可以通过友元函数或友元类来实现。但是,在使用friend
关键字时要小心,避免滥用并了解潜在的风险。