()运算符的返回值

时间:2017-04-27 10:14:28

标签: c++

我的方法中的最后一行应该是

UIStackView

但是我把它作为

return methodName(xxx,xxx);

方法返回类型是 bool ,我只是在调试问题时才注意到拼写错误。我没想到return (xxx,xxx); 要编译。它究竟做了什么?

3 个答案:

答案 0 :(得分:5)

  

返回()运算符

的值

这不是()运算符的调用。 ()运算符的语法需要函数的标识符或正在调用的变量。如果没有标识符,表达式周围的括号将用于对子表达式进行分组,并可能更改操作的执行顺序。例如:1 - (2 - 3)对后两个操作数进行分组,结果与1 - 2 - 3不同。以下是括号调用函数的示例:1 - cos(2 - 3)

在你的情况下,没有兄弟表达式,因此括号不会改变任何顺序,表达式等同于

return xxx,xxx;

这是逗号运算符的调用,类似于:

xxx;
return xxx;

只要xxx可隐式转换为函数的返回类型,就可以很好地形成。

答案 1 :(得分:0)

逗号,运算符将返回提供列表中的最后一个元素。

return (a, b, c)等于return c,即返回的最后一个元素c

答案 2 :(得分:0)

The method return type is bool是重要的一点。

C ++的主要目标是评估表达式并在

return (expression1,expression2);

你有两个表达式expression1expression2,它们一个接一个地被评估(逗号 - 它只是一个分隔符 - 这个位)。

由于expression2是最后一个,所以返回它所评估的任何值。如果expression2返回非零值,则返回的值为true,如果不是false

Sidenote :虽然,可以重载,但问题很明显,您只是将其用作分隔符