In C++, when you declare pointer, normaly the syntax is
datatype* ptr;
But when you declare function pointer, you write
datatype (*ptr) (param1, param2);
datatype* means pointer to datatype, *ptr means a content pointer points to.
So it's confusing why it is datatype (*ptr), not datatype* ptrwhen you declare function pointer.
Thank you.