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 because the developer has missed off the (), so the compiler does not treat this as a function call. Instead, it treats ...

Get Beginning C++ Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.