c++ - 参数过时了吗?

标签 c++ design-patterns

<分区>

长期以来,我的直觉和实践一直是尽可能避免 out 参数。我相信一个函数应该有一个逻辑目的,并且通常意味着一种返回类型(不返回多个东西)。有时,返回多个东西是可取的(例如 std::map::insert)。我知道这可以作为一对/元组或作为输出参数来完成;使用哪一个的争论对我来说不太重要。

首选输出参数或返回值的概念、设计或性能原因是什么?

最佳答案

你是对的,实际上并不需要 out 参数,因为 RVO 使按值返回变得可行,即使是大型类型也是如此。必须返回多个东西要么是一种代码味道,要么可以合理地打包在一个结构中。

我想说唯一剩下的原因是一致性,这很重要。如果该类已经有数十个通过参数返回的方法,请坚持使用它(除非您有自由重构该死的东西:)。

关于c++ - 参数过时了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18982782/

相关文章:

c++ - dirent.h 导致 ShellAPI.h 出现问题

c++ - QLabel图像在另一个图像上旋转

java - 我们可以有一个工厂类作为 spring bean 并有一个工厂方法根据条件返回多个 spring bean 吗?

java - 我们可以将下面的模式称为DI吗?

c++ - 具有共享资源的 D3DX11SaveTextureToFile

c++ - 错误 : constructor does not name a type

c++ - 进程工作集内存急剧上升后软件崩溃

c# - 工厂模式与我的无能。帮我看看光

go - ssh session 打开请求最终在ssh连接上提供EOF

asp.net-mvc - 将 Entity Framework 数据模型放在 MVC 应用程序中的何处?具体例子