Passing a unction as an argument

Passing a unction as an argument

How do I pass a function as a parameter?

First, let’s distinguish between a parameter and an argument. The parameter is the type of the object passed. An argument is the actual object passed. The following function takes a parameter of type ‘pointer to function that doesn’t return a value and takes no arguments:

int func( void (*p)() ) //p is a function ptr{}

Now suppose you want to pass the following function as an argument, which has a signature that matches func’s parameter:

void f(){}

All you do is pass its name:

int main(){ func(f); //f is converted to a pointer}

C and C++ automatically convert a function name to a pointer to that function. You should also remember that this technique applies to plain functions, not to member functions of a class.


Share the Post: