Pointers to functions in C++
In C++, just as we can have pointers to variables, we can have pointers to functions as well.
The general syntax of a pointers to a functions is:
return-type (*pointer-name) (list of parameter);
For example:
void (*p) (float, int);
In the above declaration, a pointer to a function returns void and takes the two formal arguments of float and int types respectively.
After declaring a pointer to a function, the address of the function must be assigned to a pointer as follows:
p = &function-name;
where p is a pointer variable.
Through pointer to function, the function is called as follows:
A = (*p) (x, y);
where, x and y are actual parameters, and
A is a variable in which the function’s return value is stored,
p is a pointer name which points to the function
Let us illustrate pointer to function with a programming example as follows:
#include<iostream.h>
void main()
{
   float add(float, float);   //function prototype
   float a, b, s;
   float (*p) (float, float); //declaration of pointer to function
   p = &add;                  //assigning function add to p
   a = 20.5;
   b = 10.3;
   s = (*p) (a,b);            //calling function add through pointer
                              //to function p
   cout << "s= " << s << endl;
}
float add(float a1, float a2)
{                              //add function defined
   int sum;
   sum = a1 + a2;
   return(sum);
}
The output of the above program would be:
s = 30.8
In the above program:
- The statement:
float (*p) (float, float); declares a pointer pwhich is a pointer to function
- The statement:
p = &add; assigns the address of function addtop, i.e., now pointerppoints to functionadd
- The statement:
s = (*p) (a, b); calls the function which is pointed by p(i.e., add) and then assigns the returned value of function tos
- It is worthwhile to note here that if in pointer to function declaration we skip the bracket in which pointer name is is written the C++ compiler interprets it as a function which returns a pointer type value. For example, if in above program we write:
float *p (float, float); then this statement means pis a function which returns pointer and the pointer points tofloattype data. i.e., function returns a pointer tofloat
 
																			 
																			 
																			
Hi! I could have sworn I’ve been to this website before but after checking through some of the post I realized it’s new to me.
Anyhow, I’m definitely happy I found it and I’ll be
book-marking and checking back frequently!
Nice explanation, but Why VOID MAIN() … it can’t be accepted.