我希望以下简单函数调用调用它的函数,但是函数由多个函数调用,因此它需要识别哪个函数专门调用它然后调用它。
int wrong()
{
std::cout << "WRONG \n";
return 0;
}
作为后续行动,这是一种更好地表达为无效的功能吗?
答案 0 :(得分:3)
您想要的是回调。 回调在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 );
}
当然这会导致递归失控,所以它会让你遇到很多麻烦,但它肯定会回答你的问题。
是的,如果它只是返回0
,那么这就是那种更好地表达为返回void
的函数。