特別是,前綴運算符的引用返回對我來說是有意義的 - 如果有人想對對象進行進一步的操作,這很有用。爲什麼後綴運算符設計爲按值返回?
但是,我無法理解爲什麼postfix運算符被設計爲按值返回。
它僅僅是一個約定,還是有一個很好的理由,爲什麼它是這樣設計的(就像一個按值返回對postfix沒有意義,但對前綴有意義)?
有人可以解釋一下嗎?
ANSWER
由於下面的答案,似乎後綴運算符不一定有(按標準)的值返回。
然而,由於後綴運算符的語義要求與標準要求(返回原始值,但遞增引用到原始值之後),結合:
操作重載是函數,因此所有的副作用必須在功能完成之前發生。
由David Rodriguez下面,分叉值明確解釋似乎是語義需求的必然結果。在這種情況下,由於我們正在返回另一個值(不是原始參考,因爲它將通過函數的右大括號進行更改),因此返回值的其他值似乎是最有意義的。
如何否則使用後會增加它嗎? – chris 2013-02-12 04:36:08
從技術上講,如果你維護一個變量,告訴它在下次使用時增加它,你可以爲它自己的類工作。但是,對我來說似乎有點不對勁。 – chris 2013-02-12 04:38:53
*「我認爲在大多數例子中,對象仍然存在。」* - 什麼對象?增加的對象?是的,通常是這樣。但是這是不相關的,因爲被遞增的對象不是postfix操作符返回的對象。我不確定你是否得到了這個。 – 2013-02-12 05:06:29