【问题标题】:In c++, should ordinary functions return void or int? [closed]在 C++ 中,普通函数应该返回 void 还是 int? [关闭]
【发布时间】:2020-07-05 12:21:58
【问题描述】:

这更像是一个哲学/经验问题。

在编写不返回任何值的函数时,默认返回值应该是 void 还是 int?像,也许返回 int 为将来添加错误代码和错误处理留下了空间?就性能和架构而言,这两个选项之间是否存在差异?

【问题讨论】:

  • 在 c++ 中,您应该抛出异常或返回错误对象。没有理由返回 int。
  • 您好 Mivsher,您似乎对您的作业发表的评论不满意。您介意提供更多详细信息吗?

标签: c++ int void


【解决方案1】:

在大多数情况下,我们可以选择更改返回类型 - 如果没有,那么我们可以定义一个替换函数并可能将旧的标记为弃用。因此,很少需要考虑您将来可能想要返回的内容。所以,根据它现在所做的来选择函数的返回类型。如果它没有返回错误代码或其他任何内容,则返回void

如果您以后确实无法更改返回类型,则您处于没有试验空间的情况。您必须首先决定是否应该返回错误代码。

附:整数不是错误报告的理想形式。考虑其他一些东西,例如异常、Boost.Outcome 或至少 std::error_code

【讨论】:

    【解决方案2】:

    它应该是无效。当函数具有返回类型时,您期望从该函数接收一个值(您将在程序中使用的值)。当一个函数为 void 时,您可以确定您的函数返回 nothing 并且正在做一些工作(例如,对数组进行排序)。不需要时返回值有什么意义?

    【讨论】:

      【解决方案3】:

      您可以采用标准委员会的方法来处理 STL。

      在 ISO SD-8 中,它表示他们保留进行兼容 API 更改的权利,例如从 void 更改为 non-void。在我能想到的任何情况下,这种变化在各个方面都是向后兼容的。

      【讨论】:

      【解决方案4】:

      编程在很大程度上是工程,the principle of least surprise 是最有用的工程原则之一。

      因此,对于一个不返回任何内容的函数来说,最不令人惊讶的是 void

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-11
        • 1970-01-01
        • 1970-01-01
        • 2012-02-18
        • 2013-06-04
        • 2021-03-11
        • 2014-11-08
        • 2012-09-09
        相关资源
        最近更新 更多