【问题标题】:Default return value of a boolean type return function in c++ [duplicate]c ++中布尔类型返回函数的默认返回值[重复]
【发布时间】:2011-09-23 13:07:22
【问题描述】:

可能重复:
Why can you return from a non-void function without returning a value without producing a compiler error?

根据 c++ 标准,以下函数的返回值应该是什么。

bool done()
{
     // no return value
}

【问题讨论】:

  • 您希望我们为您朗读整个部分,还是只是总结一下?
  • 我认为布尔值不是真就是假。返回“未知”是第三种状态,因此您不再有布尔函数。
  • 不,这就像薛定谔的猫。它具有两种状态之一(真/假),但在您读取该值之前,您无法分辨是哪一种。因此,您应该假设该值处于两种状态的“叠加”状态:-D

标签: c++


【解决方案1】:

这将是未定义的行为 - 任何事情都可能发生。

【讨论】:

  • 如果我这样做,我的电脑会爆炸吗? :)
  • 能否请您指出一个经过验证的来源。
  • @Vlad:爆炸将是符合标准的行为。 8v)
  • @Vlad Lazarenko:是的,根据标准这是合法的。
  • 我刚才说“P=NP”。这是愚蠢的,因为 N 绝对不等于 1。
【解决方案2】:

虽然它返回一个值,但它是未定义的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-20
    • 2015-01-18
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    相关资源
    最近更新 更多