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