CPP/FunctionPointer
From ProgrammingExamples
< CPP
#include <iostream> using namespace std; int add(int a, int b) { return a + b; } int subtract(int a, int b) { return a - b; } int multiply(int a, int b) { return a * b; } int divide(int a, int b) { return a / b ; } //to make syntax easier, use typedef for a function pointer //AritmaticFunctionPointer is a pointer function that takes a function with a int return value with 2 int parameter typedef int (*ArithmaticFunctionPointer)(int,int); int ApplyFunction(const ArithmaticFunctionPointer func, int a, int b){ return (*func)(a,b); } int main(){ const int ADD = 1; const int SUB = 2; const int MULT = 3; const int DIV = 4; int a = 0; int b = 0; cout <<"Enter 2 number : " ; cin >> a >> b; cout << "Choose :\n[1]ADD\n[2]SUBTRACT\n[3]MULTIPLY\n[4]DIVIDE\n<input> : "; int opt = 0; cin >> opt; switch(opt){ case ADD: cout << ApplyFunction(add,a,b) << endl; break; case SUB: cout << ApplyFunction(subtract,a,b)<< endl;; break; case MULT: cout << ApplyFunction(multiply,a,b)<< endl;; break; case DIV: cout << ApplyFunction(divide,a,b)<< endl;; break; default: cout << "Invalid Options...exiting...\n"; break; } return 0; }