【发布时间】:2015-07-15 03:09:07
【问题描述】:
我有一个包含三个函数的程序:main()、returnFunction() 和 functionToBeReturned()。 main() 必须致电 returnFunction()。我们可以使用functionToBeReturned()作为returnFunction()的返回值吗?
int functionToBeReturned()
{
// some code here....
return value;
}
int returnFunction()
{
// some code here....
return functionToBeReturned();
}
int main()
{
returnFunction();
}
这样好吗……
【问题讨论】:
-
出于好奇,您尝试过吗?
-
目前,
returnFunction返回与functionToBeReturned相同的内容,即。value(并且要获得value、returnFunction调用functionToBeReturned)。如果您想返回functionToBeReturned以便可以在 main 中调用它,那是不同的(但也可能) -
@-deviantfan 假设我将 functionToBeReturned() 声明为布尔返回类型函数。现在 functionToBeReturned() 正在传递一个布尔值。 returnFunction() 仍然是 int 类型。然后呢?
-
@user5117637 然后
returnFunction调用functionToBeReturned得到bool,然后自动转换为int(它是更大的类型等,在这里没问题),然后它s 回来了。布尔值true将是 1,false0。关于返回函数本身,如果这是你想要的,请参阅下面的 brenns 答案。 -
如果您的签名都相同,那么使用函数指针很容易。如果没有,您可以将
closures与 C++11std::function或boost::function一起使用。否则你也有 libsignals++
标签: c++