Function pointers
When an application is run, the functions it will call will exist in memory somewhere. This means that you can get the address of a function. C++ allows you to use the function call operator (a pair of parentheses enclosing the parameters ()) to call a function through a function pointer.
Remember the parentheses!
First, a simple example of how function pointers can cause difficult to notice bugs in your code. A global function called get_status performs various validation actions to determine if the state of the system is valid. The function returns a value of zero to mean that the system state is valid and values over zero are error codes:
// values over zero are error codes
int get_status()
{
int status = 0;
// code that checks the state of data is valid
return status;
}The code could be called like this:
if (get_status > 0)
{
cout << "system state is invalid" << endl;
}This is an error...