次の例のように、+演算子がフレンドである必要があるのに、()演算子のオーバーライドが「フレンド」になれない(したがって、「this」追加パラメーターが必要)のはなぜか疑問に思います。
class fnobj
{
int operator()(int i);
friend int operator+(fnobj& e);
};
int fnobj::operator()(int i)
{
}
int operator+(fnobj& e)
{
}
+演算子は、この「追加の」余分なパラメーターを回避するためにフレンドである必要があることを理解しましたが、なぜoperator()がそれを必要としないのですか?