为什么要避免在C ++中使用后缀运算符?

Avr*_*dis 0 c++ operators prefix-operator postfix-operator

我听到一位教授说“避免在上下文允许选择前缀的后缀运算符”。我进行搜索,但在stackoverflow中找不到相关的帖子来解释这一点。

当我们有能力选择操作员++时,为什么更喜欢使用prefixoperator ++ postfix

Man*_*rse 5

前缀operator ++会执行一个操作-增加值。

后缀运算符++执行三个操作-保存当前值,增加值,返回旧值。

前缀版本在概念上更简单,并且始终(至少奇怪的运算符重载)至少与后缀版本一样高效。

  • @JohnDibling:问题不是性能。问题在于代码在请求不需要的东西,这很令人困惑。 (3认同)