ptrtofunction.cpp

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

CPP
90
字号
 // Listing 20.5 Using function pointers

 #include <iostream>

 

 void Square (int&,int&);

 void Cube (int&, int&);

 void Swap (int&, int &);

 void GetVals(int&, int&);

 void PrintVals(int, int);

 

 int main()

 {

     void (* pFunc) (int &, int &);

     bool fQuit = false;

 

     int valOne=1, valTwo=2;

     int choice;

     while (fQuit == false)

     {

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

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

         std::cin >> choice;

         switch (choice)

         {

         case 1: 

             pFunc = GetVals; 

             break;

         case 2: 

             pFunc = Square; 

             break;

         case 3: 

             pFunc = Cube; 

             break;

         case 4: 

             pFunc = Swap; 

             break;

         default : 

             fQuit = true; 

             break;

         }

 

         if (fQuit)

             break;

 

         PrintVals(valOne, valTwo);

         pFunc(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 + -
显示快捷键?