我不知道爲什麼()操作符重載不能是「朋友」(所以它需要一個「這個」附加參數),而+運營商需要爲朋友就像下面這個例子:操作員覆蓋 - 何時使用朋友?
class fnobj
{
int operator()(int i);
friend int operator+(fnobj& e);
};
int fnobj::operator()(int i)
{
}
int operator+(fnobj& e)
{
}
我知道+運營商需要成爲朋友,以避免「額外」這個參數,但爲什麼運營商()不需要它?
謝謝,並且()運算符在單個對象上調用,因此必須是成員函數,是否正確? –
@JohnnyPauling正確。我編輯了我的答案來說明這一點。 –
完美,謝謝! –