Hudson Worden
Hudson Worden

Reputation: 2353

How to pass reference-to-function into another function

I have been reading about function pointers and about using them as parameters for other functions.

My question is how would you pass a function by reference without using pointers? I have been trying to find the answer on the Internet but I haven't found a good answer.

I know that you can pass variables by reference like this: void funct(int& anInt);. How would you do something similar to this, but instead of a reference to a variable, a reference to a function was the parameter?

Also, how would you use a reference to the function in a function body?

Upvotes: 16

Views: 32570

Answers (1)

Cheers and hth. - Alf
Cheers and hth. - Alf

Reputation: 145204

#include <iostream>
using namespace std;

void doCall( void (&f)(int) )
{
    f( 42 );
}

void foo( int x )
{
    cout << "The answer might be " << x << "." << endl;
}

int main()
{
    doCall( foo );
}

Upvotes: 35

Related Questions