Use typedef to define a function type for function pointer : function pointers « Function « C++ Tutorial






#include <iostream>
 using namespace std;
 
 void Square (int&,int&);
 void Cube (int&, int&);
 void Swap (int&, int &);
 void GetVals(int&, int&);
 
 typedef  void (*VPF) (int&, int&) ;
 void PrintVals(VPF,int&, int&);
 
 int main()
 {
     int valOne=1, valTwo=2;
     VPF pFunc;
 
     pFunc = GetVals;

     pFunc = Square;

     pFunc = Cube;
 
     pFunc = Swap;
  
     PrintVals ( pFunc, valOne, valTwo);
     return 0;
 }
 
 void PrintVals( VPF pFunc,int& x, int& y)
 {
     cout << "x: " << x << " y: " << y << endl;
     pFunc(x,y);
     cout << "x: " << x << " y: " << y << endl;
 }
 
 void Square (int & rX, int & rY)
 {
     rX *= rX;
     rY *= rY;
 }
 
 void Cube (int & rX, int & rY)
 {
     int tmp;
 
     tmp = rX;
     rX *= rX;
     rX = rX * tmp;
 
     tmp = rY;
     rY *= rY;
     rY = rY * tmp;
 }
 
 void Swap(int & rX, int & rY)
 {
     int temp;
     temp = rX;
     rX = rY;
     rY = temp;
 }
 
 void GetVals (int & rValOne, int & rValTwo)
 {
     cout << "New value for ValOne: ";
     cin >> rValOne;
     cout << "New value for ValTwo: ";
     cin >> rValTwo;
 }
x: 1 y: 2
x: 2 y: 1








7.10.function pointers
7.10.1.Using function pointers
7.10.2.Arrays of pointers to functions
7.10.3.Use function pointers as a function parameter
7.10.4.Use typedef to define a function type for function pointer
7.10.5.arguments passed by reference
7.10.6.arguments passed by pointer
7.10.7.array passed by pointer
7.10.8.orders two arguments using pointers
7.10.9.sorts an array using pointers
7.10.10.Function pointer for overloaded function