友元函数可以访问类的私有成员,所以可以使用友元函数来实现多数据之和。
假设有一个类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。