我的直觉和实践很长一段时间一直避免使用params,如果可能的话。我相信一个函数应该有一个逻辑目的,通常意味着一个返回类型(不返回多个东西)。有时,返回多个东西是可取的(例如std :: map :: insert)。我知道这可以作为一对/元组或输出参数来完成;使用哪一个对我来说不那么重要。
更喜欢输出参数或返回值的概念,设计或性能原因是什么?
答案 0 :(得分:6)
你是对的,不需要输出参数,因为RVO使值返回可行,即使是大型类型也是如此。并且必须返回多个东西要么是代码气味,要么可以合理地包装在结构中。
我要说的唯一剩下的原因,这是一个大问题,一致性。如果类已经有几十个按参数返回的方法,请坚持下去(除非你有权重构这个糟糕的东西:)。
答案 1 :(得分:0)
根据上下文,第三种方法可能是传递回调。如果被调用函数“产生”多个值,则回调可能有多个方法。
虽然采用回调参数的函数并不真正适合“函数”的定义,但是返回多个值的函数IMO也不适用。