()运算符的返回值
Return value of () operator
我在方法中的最后一行应该是
return methodName(xxx,xxx);
,但我把它当作
return (xxx,xxx);
方法返回类型为 bool ,我只在调试问题时才注意到错字。我没想到return (xxx,xxx);
会编译。它到底做了什么?
返回((运算符的值
这不是((运算符的调用。((运算符的语法要求函数的标识符或正在调用的变量。没有标识符,表达式周围的括号将用于分组子表达,并可能会更改执行操作的顺序。例如:1 - (2 - 3)
分组后两个操作数,结果与1 - 2 - 3
不同。这是括号调用函数的示例: 1 - cos(2 - 3)
。
在您的情况下,没有同胞表达式
return xxx,xxx;
这是逗号运算符的调用,类似于:
xxx;
return xxx;
只要xxx
隐式转换到函数的返回类型。
COMMA ,
操作员将返回提供列表中的最后一个元素。
return (a, b, c)
等于 return c
,即其返回的最后一个元素 c
The method return type is bool
是这里的重要点。
C 的主要目的是评估表达式和
return (expression1,expression2);
您有两个表达式,即expression1
和expression2
,对一个接一个地评估(逗号 - 只是一个分隔符 - 做到这一点(。
由于 expression2
是最后的,所以返回了什么值。如果expression2
返回非零值,则返回的值将为true
,如果不是false
。
sidenote :尽管,
可以重载,但从问题中很明显,您将其用作分隔符
相关文章:
- 使用赋值运算符重载从类中返回jobject
- 运算符重载是否真的需要返回值C++?
- 为什么我的类工作正常,即使在返回垃圾值作为赋值运算符和空复制构造函数的返回之后
- 赋值运算符的返回值可以作为参考吗?
- 返回带有 ?: 运算符的可选值
- 为什么类的赋值运算符的返回类型通常是非常量(而不是常量)引用?
- 字符串流运算符>>返回值
- 动态指针引用数组由三元运算符返回值,但有异常
- ()运算符的返回值
- 函数返回值的位运算符提升
- 赋值运算符重载 c++ 的返回值
- 重载运算符->() 以更改被调用函数的返回值
- 在对类对象的赋值进行链接时获取垃圾值,使用按值返回类对象的赋值运算符重载
- 获取对运算符 [] 返回值unordered_map引用
- 为什么三元运算符阻止返回值优化
- 尽管返回了引用,但无法链接重载的赋值运算符
- 没有返回值的c++类成员运算符定义
- 为什么赋值运算符必须返回任何内容
- 为什么在传递重载运算符的返回值时不调用复制构造函数
- 重载不同返回值的运算符new