C ++中的函数是否有任何默认返回类型?

pik*_*080 2 c++ c++11

我最近读到C ++中所有函数的默认返回类型是int。谷歌搜索并不能帮助我确认这一点。

因此:

  1. 真的是C ++中所有函数的默认返回类型int吗?
  2. 如果不是,那么C ++中的函数是否存在任何此类默认返回类型?如果是这样,那是什么?

lub*_*bgr 8

  1. 真的是C ++中所有函数的默认返回类型int吗?

没有。

  1. 如果不是,那么C ++中的函数是否存在任何此类默认返回类型?

没有。


让编译器为您提供帮助。如果您尝试按照以下方式进行操作,

noReturnType(int a, int b)
{
   std::cout << a + b << "\n";
}
Run Code Online (Sandbox Code Playgroud)

你会得到例如

error: C++ requires a type specifier for all declarations
noReturnType(int a, int b)  
^
Run Code Online (Sandbox Code Playgroud)

可以通过void在函数声明/定义(或要返回的任何类型)的前面添加来缓解这种情况。可能造成混淆的可能性是让编译器推断出返回类型的能力。这个示例在C ++ 14下可以很好地编译:

auto deduceReturnType(int a, int b)
{
    return a + b; // return type is int
}
Run Code Online (Sandbox Code Playgroud)

但这与默认返回类型无关,也不能在auto此处省略。

  • @ErikNielsen不。该帖子说您可以省略return ...;,而不是return类型。 (4认同)