Fraction& Fraction::operator= (const Fraction &fraction)
{
// do the copy
m_numerator = fraction.m_numerator;
m_denominator = fraction.m_denominator;
return *this;
}
int main()
{
Fraction fiveThirds(5, 3);
Fraction f;
f = fiveThirds; // calls overloaded assignment
std::cout << f;
return 0;
}
У меня есть некоторые проблемы с понятием return this
при перегрузке оператора присваивания.
В основной функции f = fiveThirds
вызовет оператор присваивания и вернет *this
,т.е. вернуть Fraction
объект!
Проблема в том, что f = fiveThirds
вернет объект, но нет объекта Fraction для его получения!
В цепочке присваиваний x=y=z
, y=z
вернет объект (k
), который будет присвоен x
, однако x=k
также вернет объект, так кто же получит этот объект?
Я сделал все возможное, чтобы описать мою проблему.