(この回答は、C++ の C++11 標準を想定しています。)
コメントに示されているように、配列に格納されているすべての操作は、2 つの整数引数を取り、整数を返すと想定できます。したがって、これらをこのデータ型のファンクターとして表すことができます。
std::function<int(int,int)>
そのデータ型の固定サイズの 5 要素配列は、次のように実装するのが最適です。
std::array<std::function<int(int,int)>,5>
以下は、これらのデータ型を利用する完全な例です。標準ライブラリ ( など) によって提供される関数オブジェクトを使用して、加算、減算、乗算、および除算の 4 つの基本演算を実装します。5 番目の算術演算もありますが、これには整数に対するべき乗のアドホックな実装を使用します。これは、ラムダ関数 (C++11 によって提供される無名関数の新しい型) として実装されます。配列に変換して格納することもできます。std::plus<int>
std::minus<int>
std::function<int(int,int)>
#include <iostream>
#include <functional>
#include <array>
int main()
{
/* Customized arithmetic operation. Calculates the arg2-th
power of arg-1. */
auto power = [](int arg1, int arg2) {
int result = 1;
for (int i = 0 ; i < arg2 ; ++i)
result *= arg1;
return result;
};
/* Fixed-size array of length 4. Each entry represents one
arithmetic operation. */
std::array<std::function<int(int,int)>,5> ops {{
std::plus<int>(),
std::minus<int>(),
std::multiplies<int>(),
std::divides<int>(),
power
}};
/* 10 + 20: */
std::cout << ops[0](10,20) << std::endl;
/* 3 - 1: */
std::cout << ops[1](3,1) << std::endl;
/* 3rd power of 9: */
std::cout << ops[4](9,3) << std::endl;
return 0;
}