c++关键字 friend
时间: 2024-01-04 16:20:04 浏览: 25
在C++中,关键字friend用于声明友元函数或友元类。友元函数可以访问类的私有成员,即使它们不是类的成员函数。友元类可以访问另一个类的私有成员。友元关系是通过在类的声明中使用friend关键字来建立的。
下面是一个示例,演示了如何在C++中使用友元函数和友元类:
```cpp
#include <iostream>
using namespace std;
class MyClass {
private:
int privateData;
public:
MyClass(int data) : privateData(data) {}
friend void friendFunction(MyClass obj); // 声明友元函数
friend class FriendClass; // 声明友元类
};
void friendFunction(MyClass obj) {
cout << "Friend function accessing private data: " << obj.privateData << endl;
}
class FriendClass {
public:
void accessPrivateData(MyClass obj) {
cout << "Friend class accessing private data: " << obj.privateData << endl;
}
};
int main() {
MyClass obj(42);
friendFunction(obj); // 调用友元函数
FriendClass fc;
fc.accessPrivateData(obj); // 调用友元类的成员函数
return 0;
}
```
输出:
```
Friend function accessing private data: 42
Friend class accessing private data: 42
```