我可以使用&=阻止函数执行吗?

dje*_*dot 1 c++ operators

示例代码如下:

bool result;
result = Operation1();
result &= Operation2();
result &= Operation3();
return result;
Run Code Online (Sandbox Code Playgroud)

目的是确保,如果任何函数返回false,则不调用后面的函数.这种语法是正确的还是我需要做的result = result && Operation2();

Fre*_*son 7

如果你的意思是逻辑"和"而不是按位(我怀疑是这样,因为你正在使用a bool),使用短路:

result = Operation1() && Operation2() && Operation3();
Run Code Online (Sandbox Code Playgroud)

这些函数将从左到右进行评估,直到其中一个返回false,然后不会评估其余函数.

  • 如果不能保证评估顺序,短路将不会非常有用. (2认同)