ptrarrayfunction.cpp

来自「《24学时精通c++》的光盘内容」· C++ 代码 · 共 88 行

CPP
88
字号
 // Listing 20.6 arrays of pointers to functions

 #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 choice,i;

     const int MaxArray = 5;

     void (*pFuncArray[MaxArray])(int&, int&);

 

     for (i=0;i<MaxArray;i++)

     {

         std::cout << "(1)Change Values "

             << "(2)Square (3)Cube (4)Swap: ";

         std::cin >> choice;

         switch (choice)

         {

         case 1:

             pFuncArray[i] = GetVals; 

             break;

         case 2:

             pFuncArray[i] = Square; 

             break;

         case 3:

             pFuncArray[i] = Cube; 

             break;

         case 4:

             pFuncArray[i] = Swap; 

             break;

         default:

             pFuncArray[i] = 0;

         }

     }

 

     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;

 }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?