首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“返回*此”赋值操作符重载

“返回*此”赋值操作符重载
EN

Stack Overflow用户
提问于 2019-03-31 14:06:01
回答 1查看 139关注 0票数 0
代码语言:javascript
运行
复制
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也将返回一个对象,那么谁将接收该对象?

我已经尽力描述我的问题了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-31 14:15:30

问题是f= fiveThirds将返回对象,但是没有任何分数对象来接收它!

更准确地说,它返回对对象的引用。

那么谁来接收这个对象呢?

返回值被丢弃。

没有问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55441734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档