我希望以下简单函数调用调用它的函数,但是函数由多个函数调用,因此它需要识别哪个函数专门调用它然后调用它.
int wrong()
{
std::cout << "WRONG \n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
作为后续行动,这种功能是否会更好地表达为空白?
你想要的是回调。C++ 中的回调是这样实现的:
typedef int (*CallbackType)( char c );
int wrong( CallbackType callback )
{
std::cout << "WRONG \n";
int r = callback( 'x' );
return r;
}
int also_wrong( char c )
{
return wrong( also_wrong );
}
Run Code Online (Sandbox Code Playgroud)
当然,这会导致递归失控,因此会给您带来很多麻烦,但它肯定回答了您的问题。
是的,如果它所做的只是返回0,那么这种函数最好表达为返回void。