来自C++机构文档(在线类(class)):



关于这个例子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++的某些旧版本?

最佳答案



返回类型在常规函数原型(prototype)中不能省略。您引用的资源错误地提出了其他建议。在标准C++中,没有规则假定函数原型(prototype)中的返回类型为int



不是C++。 C++不允许省略返回类型。但是预先标准化的C(K&R C)确实允许它使用,并且具有“隐式int”规则。因此,某些编译器提供了扩展,以与某些真正的旧C代码兼容。

再次重申,这从来都不是标准的C++。

09-04 15:31
查看更多