2017-10-05 163 views
1

我一直很好奇,但从来没有找到一个坚实的答案或一个容易理解的解释。我曾与其他运营商尝试过,它工作得很好。这个操作符特别有趣。我只是无法绕过它。为什么三元运算符不能被重载?

+0

我从这个答案中得到的一个假设是它被放弃了,没有真正的理由给出它为什么没有完成。我正在寻找这个运营商的起源故事。 –

回答

4

stroustrup FAQ:

没有根本的原因不允许的?:超载。我只是 没有看到需要引入超载运算符的特殊情况。请注意,重载expr1?expr2:expr3 的功能将无法保证expr2expr3中只有一个被执行为 。

+1

这比以前的答案要好得多。所以基本上没有人知道,也没有打扰这个想法。 –

+1

@MSquared虽然这不是一个很好的理由重新问这个问题。虽然这个答案可能比伪装中的更好,但是在多个相同的问题中分散好的答案正是欺骗系统应该避免的,因为它使得难以找到所有的好答案。如果你认为现有的问题需要更好的答案,你应该提出一个奖励(需要75个代表),所以SO保持良好和可搜索。 –