当我将return;或return void();放在Qt 5中c++类的常规void方法中时,它编译得很好。当我把它放在slots方法中时,编译器会生成以下错误:
错误C2120: 'void'在所有类型下都是非法的
这里说明了,在void中返回是可能的:Can I return in void function?
这里声明,由于slot是普通的c++函数,因此可以返回值,我认为包括void。http://www.qtcentre.org/archive/index.php/t - 26724. - html
你知道为什么在这种情况下会发布C2120吗?
void函数只能返回void。例如:
void foo()
{
return void();
}
否则你可以返回
void foo()
{
return;
}
本身是空的
,但是你不能返回任何东西,这就是为什么会有一个错误