빙수달 게임 개발 노트

[C++] 함수 포인터를 이용한 계산기 본문

Programming/C++

[C++] 함수 포인터를 이용한 계산기

빙수달 2024. 12. 18. 23:47
#include <iostream>

using namespace std;
double add(double a, double b);	
double min(double a, double b);
double calculate(double a, double b, double(*pt)(double, double));

int main()
{
	double a, b;
	cout << "a = "; cin >> a;
	cout << "b = "; cin >> b;
	double plus = calculate(a, b, add);	
	double substract = calculate(a, b, min);

	cout << "calculate(a,b,add) 함수에 의해 " << plus << "(이)가 도출된다.\n";
	cout << "calculate(a,b,min) 함수에 의해 " << substract << "(이)가 도출된다.\n";

	return 0;
}
	
double calculate(double a, double b, double(*pt)(double, double))	// 세 번째 매개변수는 두 개의 double형을 매개변수로 취하여 double형을 리턴하는 함수를 지시하는 포인터
{
	return pt(a, b);		// pt()함수를 리턴한다. calculate 함수의 세 번째 매개변수가 add()함수라면 add(a,b)를 리턴한다.
}

double add(double a, double b)
{
	return (a + b);
}

double min(double a, double b)
{
	return (a - b);
}