C++友元函數是指一個非成員函數可以訪問類的私有成員和保護成員。以下是定義和使用C++友元函數的步驟:
在類的聲明中聲明友元函數。
在類的定義中定義友元函數。
在友元函數的實現中訪問類的私有成員和保護成員。
下面是一個例子:
// 聲明類
class MyClass {
private:
int privateData;
public:
MyClass(int data);
// 聲明友元函數
friend void friendFunc(MyClass obj);
};
// 定義類的構造函數
MyClass::MyClass(int data) {
privateData = data;
}
// 定義友元函數
void friendFunc(MyClass obj) {
// 訪問類的私有成員
cout << "私有成員的值是: " << obj.privateData << endl;
}
int main() {
MyClass obj(10);
// 調用友元函數
friendFunc(obj);
return 0;
}
在上面的例子中,我們聲明了一個名為friendFunc
的友元函數,并將其聲明為MyClass
類的友元。在友元函數的實現中,我們可以訪問MyClass
類的私有成員privateData
。然后在主函數中,我們創建了一個MyClass
對象obj
并調用了friendFunc
函數。
輸出結果將會是:
私有成員的值是: 10
注意:友元函數不是成員函數,因此在定義時不需要指定作用域操作符::
。在友元函數中可以直接訪問類的私有成員和保護成員,無需通過對象或指針訪問。