我如何获得一个函数来调用调用它的函数?

时间:2015-12-05 01:06:48

标签: c++

我希望以下简单函数调用调用它的函数,但是函数由多个函数调用,因此它需要识别哪个函数专门调用它然后调用它。

int wrong()
{
    std::cout << "WRONG \n";
    return 0;
}

作为后续行动,这是一种更好地表达为无效的功能吗?

1 个答案:

答案 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的函数。