我想知道为什么 () 运算符覆盖不能是“朋友”(因此它需要一个“this”附加参数),而 + 运算符需要是朋友,如下例所示:
class fnobj
{
int operator()(int i);
friend int operator+(fnobj& e);
};
int fnobj::operator()(int i)
{
}
int operator+(fnobj& e)
{
}
我知道 + 运算符需要成为朋友以避免“附加”额外的this参数,但为什么 operator() 不需要它?