来自C ++机构文档(在线课程):
return_type描述了函数返回(传递)的结果的类型(例如,我们期望正弦函数将返回float类型的值,因为int数据在此上下文中完全不可用);您可以将任何C ++类型用作return_type,包括一个非常特殊的类型,称为void;类型为void的函数根本不返回结果;我们可以说这样的功能可能有效果,但绝对没有结果。 如果省略return_type,则编译器会假定函数返回的是int类型的值
关于此示例return_type function_name (parameters_list);
在此示例中:
my_function(int x) {
return 4;
}
int main()
{
...
}
我收到以下错误:ISO C++ forbids declaration of 'my_function' with no type [-fpermissive]|
在此示例中:
my_function(int); //Prototype
int main()
{
...
}
int my_function(int x)
{
return 4;
}
我收到以下错误:expected constructor, destructor, or type conversion before ';' token
我在C++11 standard页192-function declaration
中找不到与我想知道的事情有关的东西(或者可能只是我不理解的事实)。
能否请您说明何时可以省略 return_type ?这是一个错误吗?还是C ++的旧版本?
答案 0 :(得分:14)
能否请您解释何时可以省略return_type?这是一个错误吗?
在常规函数原型中不能省略返回类型。您引用的资源错误地提出了其他建议。标准C ++中没有规则假定函数原型中的返回类型为int
。
还是某些旧版本的C ++?
不是C ++。 C ++不允许省略返回类型。但是预先标准化的C(K&R C)确实允许它使用,并且具有“隐式int”规则。因此,一些编译器提供了扩展,以与某些真正的旧C代码兼容。
但是,这再次不是标准C ++。