初めてのC++

初めてのが関数ポインタの配列というのはどうなのかと思いつつ、必要になりそうなのはこの辺なのである。。。

でも、まだ関数を返す関数というのはできていないのであった。

/Users/yasuhisa/cpp% ./a.out
30
-10
200
10
#include <iostream>
using namespace std;
int add(int num1, int num2);
int sub(int num1, int num2);
int mul(int num1, int num2);
int mod(int num1, int num2);

int main()
{
  int num1 = 10;
  int num2 = 20;
  int (*p[4]) (int num1, int num2) = { add, sub, mul, mod };

  for(int i=0; i<4; i++)
	{
	  cout << (*p[i])(num1, num2) << endl;
	}
  return 0;
}

int add(int num1, int num2)
{
  return ( num1 + num2 );
}

int sub(int num1, int num2)
{
  return ( num1 - num2 );
}

int mul(int num1, int num2)
{
  return ( num1 * num2 );
}

int mod(int num1, int num2)
{
  if( num2 == 0 ){ return 0; }
  return ( num1 % num2 );
}