为什么在for循环中接收赋值错误?

SRY*_*ZDN 0 c++

我有一个类成员函数如下:

int changeBase () 
{

    for (int i=1; getDigit()>0; i*=2, getDigit()/=10)
      {
        s+=(getDigit()%10)*i;
      }
        return s;
}
Run Code Online (Sandbox Code Playgroud)

为什么我收到以下错误?

左值作为赋值的左操作数

Cor*_*mer 6

for循环的最后一个条件是

getDigit() /= 10
Run Code Online (Sandbox Code Playgroud)

这是一种写作的简便方法

getDigit() = getDigit() / 10
Run Code Online (Sandbox Code Playgroud)

这是无效的,你试图将int(我假设的)分配给函数的返回值,这是你无法做到的.

  • 有效性取决于如何定义getDigit(它可能返回引用...). (4认同)