3

我想知道如何将返回函数作为参数传递给另一个函数,以便我可以使用它的值。

例子:

int childFunction(int a, int b)
{
    int c;
    c = a + b;
    return c;
}

void motherFunction(int d, int (childFunction)(int a, int b))
{
    //some operation example
}

谢谢

4

2 回答 2

3

函数指针

用于*创建指向函数的指针:

void motherFunction(int d, int (*f)(int, int))
{
    int y = f(1, 2);
}
...

motherFunction(100, childFunction);

 

标准::函数1

void motherFunction(int d, const std::function<int(int,int)> &f)
{
    int y = f(1, 2);
}
...

motherFunction(100, childFunction);

 

基于模板

template <typename F>
void motherFunction(int d, const F &f)
{
    int y = f(1, 2);
}
...

motherFunction(100, childFunction);
于 2013-05-20T09:24:54.723 回答
2

您需要将childFunction参数声明为函数指针。

void motherFunction(int d, int (*func)(int, int))
{
    func(d, 0);
}


int childFunction(int a, int b)
{
    int c;
    c = a + b;
    return c;
}

int main()
{
    motherFunction(1, childFunction);
    return 0;
}
于 2013-05-20T09:25:18.663 回答