gpt4 book ai didi

c++ - 表达式必须是我类(class)中的可修改左值

转载 作者:行者123 更新时间:2023-11-28 02:40:47 27 4
gpt4 key购买 nike

我知道这意味着什么,但在我的情况下,我不明白为什么我的 IDE 会为此大喊大叫。

Rational operator*(const Rational& that1, const Rational& that2)
{
Rational temp(that1);
temp.getNom() *= that2.getNom();
temp.getDenom() *= that2.getDenom();
return temp;
}

int Rational::getNom() const
{
return m_iNom / gcd(m_iNom, m_iDenom);
}
int Rational::getDenom() const
{
return m_iDenom / gcd(m_iNom, m_iDenom);
}

float Rational::gcd(int a, int b)
{
if (b == 0)
return a;
return gcd(b, a % b);
}

m_iNom 和 m_iDenom 是 Rational 类中的私有(private)数据成员。

我在 :

收到“表达式必须是可修改的左值”
temp.getNom() *= that2.getNom();
temp.getDenom() *= that2.getDenom();

最佳答案

您不能影响函数或方法返回值。

temp.getNom() *= that2.getNom(); 类似于 temp.getNom() = temp.getNom() * that2.getNom();

这就像写 2 = 2 * 3 并设置 2 = 5 ......没有意义!

关于c++ - 表达式必须是我类(class)中的可修改左值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26074358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com