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.