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将返回对象,但是没有任何分数对象来接收它!
在赋值链 x=y=z中,y=z将返回一个对象(k),该对象将分配给x,然而x=k也将返回一个对象,那么谁将接收该对象?
我已经尽力描述我的问题了。
发布于 2019-03-31 14:15:30
问题是f= fiveThirds将返回对象,但是没有任何分数对象来接收它!
更准确地说,它返回对对象的引用。
那么谁来接收这个对象呢?
返回值被丢弃。
没有问题。
https://stackoverflow.com/questions/55441734
复制相似问题