友元函數可以訪問類的私有成員,所以可以使用友元函數來實現多數據之和。
假設有一個類A,它的私有成員變量有a、b、c,我們可以定義一個友元函數sum,來計算a、b、c的和:
class A {
private:
int a, b, c;
public:
A(int a, int b, int c) {
this->a = a;
this->b = b;
this->c = c;
}
friend int sum(A obj);
};
int sum(A obj) {
return obj.a + obj.b + obj.c;
}
int main() {
A obj(1, 2, 3);
int result = sum(obj);
cout << result << endl; // 輸出6
return 0;
}
在上面的示例中,sum函數被聲明為類A的友元函數,可以直接訪問類A的私有成員a、b、c,并計算它們的和。在main函數中,我們創建了一個類A的對象obj,并將其作為參數傳遞給sum函數,得到了a、b、c的和并輸出結果6。