devxlogo

Passing a unction as an argument

Passing a unction as an argument

Question:
How do I pass a function as a parameter?

Answer:
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.

devx-admin

Share the Post: