C++友元関数のデータ多重加算方法
友元関数を利用することでプライベートメンバーにアクセス出来るため、複数のデータの合計を集計する機能を実装できます。
プライベートメンバー変数 a, b, c を持つクラス A があるとします。このとき、a, b, c の合計を計算するフレンド関数 sum を定義できます。
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が出力されています。