list1505.cpp

来自「teach yourself C++ in 21 days 第五版」· C++ 代码 · 共 82 行

CPP
82
字号
// Listing 15.5 Using function pointers

#include <iostream>
using namespace std;

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)
   {
      cout <<  "(0)Quit (1)Change Values (2)Square (3)Cube (4)Swap: ";
      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 == false)
      {

          PrintVals(valOne, valTwo);
          pFunc(valOne, valTwo);
          PrintVals(valOne, valTwo);
      }
   }
   return 0;
}

void PrintVals(int x, int 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;
}

⌨️ 快捷键说明

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