Mega Code Archive

 
Categories / C++ Tutorial / Function
 

Use typedef to define a function type for function pointer

#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