기본적인 함수들은 어느 때에 맞춰 불려진다. 그런데 때때로 어떠한 신호에 의해 정해놓지 않은 시기에 함수가 호출되는데,
이를 콜백 함수라고 하며, 프로그래밍에서는 인수로 함수 포인터를 받아서 사용할 수 있는데 이때 함수 포인터가 가리키는 함수가 callback 이다.
int Sum(int a, int b)
{
return a+b;
}
int Cal(int a, int b)
{
return a*b;
}
int Func(int a, int(*pf)(int,int))
{
return pf(a,a+5);
}
int main()
{
cout << Func(5, &Sum); // Sum() 을 콜백
cout << Func(5, &Cal); // Cal() 을 콜백
}
콜백 함수의 장점은 특정 조건에 따라서 같은 코드(포인터 객체) 이지만 호출하는 함수를 다르게 할 수 있다.
런타임 중 변경이 가능하게 된다는 점이다.
상태머신을 만들 때에도 콜백을 사용하면 switch문과 if문 없이 가독성과 생산성을 높일 수 있다.
'Cpp' 카테고리의 다른 글
클래스의 기본 메소드 6가지 정리 (0) | 2024.04.02 |
---|---|
템플릿(template) (0) | 2023.06.20 |
허상 포인터(댕글링 포인터) (0) | 2023.06.19 |
L-value, R-value (0) | 2023.06.19 |
스마트 포인터 (0) | 2023.06.13 |