functionpointers.cpp

来自「C++高级编程这本书所附的源代码」· C++ 代码 · 共 45 行

CPP
45
字号
#include <iostream>

using namespace std;

typedef bool(*YesNoFcn)(int, int);

bool intEqual(int inItem1, int inItem2);
bool bothOdd(int inItem1, int inItem2);
void findMatches(int values1[], int values2[], int numValues, YesNoFcn inFunction);

void findMatches(int values1[], int values2[], int numValues, YesNoFcn inFunction)
{
  for (int i = 0; i < numValues; i++) {
    if (inFunction(values1[i], values2[i])) {
      cout << "Match found at position " << i << " (" << values1[i] << ", " << values2[i] << ")" << endl;
    }
  }
}

bool intEqual(int inItem1, int inItem2)
{
  return (inItem1 == inItem2);
}

bool bothOdd(int inItem1, int inItem2)
{
  return (inItem1 % 2 == 1 && inItem2 % 2 == 1);
}

int main()
{
  int arr1[7] = {2, 5, 6, 9, 10, 1, 1};
  int arr2[7] = {4, 4, 2, 9, 0, 3, 4};

  cout << "Calling findMatches() using intEqual():" << endl;
  findMatches(arr1, arr2, 7, &intEqual);

  cout << endl;

  cout << "Calling findMatches() using bothOdd():" << endl;
  findMatches(arr1, arr2, 7, &bothOdd);
}


⌨️ 快捷键说明

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