マッピィ Techlog

日々思うこと

【C++】フレンド関数って何に使うの?

C++のフレンド関数って書籍にはよく出てくるのですが、実戦で使ったことはありませんでした。

フレンド関数とはなんなのかをまず説明しますと
「privateメンバを関数からアクセスできる機能」
になります(わかりにくい?)

具体的に書けば、

#include <iostream>

class MyClass{
	int a, b;
public:
	MyClass(int i, int j){ a = i; b = j;}
	friend bool isFactor(MyClass obj);
};

bool isFactor(MyClass obj){
	return (obj.a % obj.b) == 0;
}

int main()
{
	MyClass obj(9, 3);
	if(isFactor(obj)) std::cout << "割り切れる\n";
	else std::cout << "割り切れない\n";

	return 0;
}

という事なんでしょうけど。
いや、普通にメンバ関数にすればいいのでは、と思ってしまうのですが、何かあるのかな…。