• 코드:
​x
 
1
#include <iostream>
2
using namespace std;
3
​
4
double Add(double, double);
5
double Sub(double, double);
6
double Mul(double, double);
7
double Div(double, double);
8
double Calculator(double , double, double (*func)(double, double));
9
​
10
int main(void)
11
{
12
    double (*calc)(double, double) = NULL; // 함수 포인터 선언
13
    double num1 = 3, num2 = 4, result = 0;
14
    char oper = '*';
15
        
16
    switch (oper)
17
    {
18
        case '+' :
19
            calc = Add;
20
            break;
21
        case '-':
22
            calc = Sub;
23
            break;
24
        case '*':
25
            calc = Mul;
26
            break;
27
        case '/':
28
            calc = Div;
29
            break;
30
        default:
31
            cout << "사칙연산(+, -, *, /)만을 지원합니다.";
32
            break;
33
    }
34
     
35
    result = Calculator(num1, num2, calc);
36
    cout << "사칙 연산의 결과는 " << result << "입니다.";
37
    return 0;   
38
}
39
​
40
double Add(double num1, double num2)
41
{
42
    return num1 + num2;
43
}
44
​
45
double Sub(double num1, double num2)
46
{
47
    return num1 - num2;
48
}
49
​
50
double Mul(double num1, double num2)
51
{
52
    return num1 * num2;
53
}
54
​
55
double Div(double num1, double num2)
56
{
57
    return num1 / num2;
58
}
59
​
60
double Calculator(double num1, double num2, double (*func)(double, double))
61
{
62
    return func(num1, num2);
63
}
표준입력 & 실행옵션