"return *this" 赋值运算符重载

"return *this" assignment operator overloading

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 的概念有一些疑问。

在main函数中f = fiveThirds会调用赋值运算符,会return*this,即return一个Fraction对象!

问题是 f = fiveThirds 将 return 对象,但没有任何 Fraction 对象可以接收它!

赋值链x=y=z,y=z将return一个对象(k)赋值给x,但是x=k也会return一个对象,那么谁接收这个对象呢?

我已尽力描述我的问题。

The problem is f = fiveThirds will return the object, but there isn't any Fraction object to receive it!

更准确地说,它return是对对象的引用。

so who receives this object?

return 值被丢弃。

没有问题。