赋值运算符在返回语句中的含义是什么,例如return t = ...?

时间:2016-10-11 18:05:35

标签: c++ enums return

我有疑问,在我的代码示例中返回赋值表达式意味着什么?我有一个枚举,我已经覆盖了++:运算符。因此,在我的简短示例中可以在ligth之间切换 - 但是代码中有一部分我不明白。代码编译并正常工作。

代码:

otherwise

"返回t = Traficlight :: yellow"意思是,为什么我不能回来 " Traficlight ::黄色"

4 个答案:

答案 0 :(得分:6)

在返回指令中,运算符分配给t哪个是引用(修改它)然后返回值。

这就是增量运算符的作用:修改&同时返回引用,以便递增的值可以在另一个操作中使用。

答案 1 :(得分:4)

t = Traficlight::yellowTraficlight::yellow写入t。该表达式的结果也是Traficlight::yellow,所以这个:

return t = Traficlight::yellow;

等于:

t = Traficlight::yellow;
return t;

在上面的函数中,我们收到了对t的引用作为参数,因此更改t的值实际上是相关的。

答案 2 :(得分:3)

您的函数通过引用接收参数:

pip install git+https://github.com/pytest-dev/pytest.git

它是一个++运算符,所以在语义上它必须递增它的操作数,然后返回对该操作数的引用。所以你必须做两件事:

Traficlight& operator++(Traficlight& t)

这可以写成一行,因为赋值运算符返回指定的值。

答案 3 :(得分:0)

它为t变量赋值(并且在您的代码中t是引用类型,因此更改在外部可见),然后返回t变量的值。

相关问题