gpt4 book ai didi

c++ - 关于 OR ( || ) 运算符和 return 语句

转载 作者:太空宇宙 更新时间:2023-11-04 14:45:09 25 4
gpt4 key购买 nike

我一直在想,如果我有这样的功能:

bool Foo::Bar()
{
return A() || B() || C();
}

如果 A() 返回 true,Bar() 会立即返回 true 还是在评估最终值之前仍然计算 B() 和 C() 的结果?

最佳答案

如果 A() 为真,则 B 和 C 都不会被求值。这叫做 operator short-circuiting .

类似地,在诸如A && B && C 的语句中,如果Afalse,则不会评估B 或C。

这不仅仅是一个优化;当 BC 依赖于 A 时,它特别有用。例如,您可以在一条语句中既测试指针指向 指向某物,又在指向的对象上调用方法:

if (my_pointer && my_pointer->some_method() > 9) {

}

关于c++ - 关于 OR ( || ) 运算符和 return 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13991329/

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