Arrays of pointers to functions : function pointers « Function « C++ Tutorial






#include <iostream>
 
 void Square (int&,int&);
 void Cube (int&, int&);
 void Swap (int&, int &);
 void GetVals(int&, int&);
 void PrintVals(int, int);
 
 int main()
 {
     int valOne=1, valTwo=2;
     int i;
     const int MaxArray = 5;
     void (*pFuncArray[MaxArray])(int&, int&);
 
     pFuncArray[0] = GetVals; 
     pFuncArray[1] = Square; 
     pFuncArray[2] = Cube; 
     pFuncArray[3] = Swap; 
     pFuncArray[4] = Square; 
 
     for (i=0;i<MaxArray; i++)
     {
         pFuncArray[i](valOne,valTwo);
         PrintVals(valOne,valTwo);
     }
     return 0;
 }
 
 void PrintVals(int x, int y)
 {
     std::cout << "x: " << x << " y: " << y << std::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)
 {
     std::cout << "New value for ValOne: ";
     std::cin >> rValOne;
     std::cout << "New value for ValTwo: ";
     std::cin >> rValTwo;
 }
New value for ValOne: 1
New value for ValTwo: 2
x: 1 y: 2
x: 1 y: 4
x: 1 y: 64
x: 64 y: 1
x: 4096 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