在C++中,友元函數(friend function)是一種特殊的函數,它可以訪問類的私有(private)和保護(protected)成員。友元函數可以是全局函數,也可以是類的成員函數。但是,通常情況下,友元函數被用作全局函數,以便訪問多個類的私有和保護成員。
以下是一個使用全局友元函數的示例:
#include <iostream>
using namespace std;
class MyClass {
private:
int myVar;
public:
MyClass(int var) : myVar(var) {}
// 聲明全局友元函數
friend void printMyVar(const MyClass& obj);
};
// 定義全局友元函數
void printMyVar(const MyClass& obj) {
cout << "myVar: " << obj.myVar << endl;
}
int main() {
MyClass obj(10);
printMyVar(obj); // 輸出:myVar: 10
return 0;
}
在這個示例中,我們聲明了一個名為printMyVar
的全局友元函數,它可以訪問MyClass
類的私有成員myVar
。在main
函數中,我們創建了一個MyClass
對象并調用了printMyVar
函數來輸出myVar
的值。