* 함수 포인터
- 함수 시작 위치를 저장하는 포인터 변수
int (*fp)(int, char)
/*
반환형 int, parameter로 int, char을 가지는 함수 주소를 가리킬 수 있는 함수 포인터 선언
*/
//typedef로 자료형 등록 가능
typedef int(*FP)(int, char);
//함수 포인터 등록
int A(int a, char b){ /*something*/ }
int B(int a, char b){ /*something*/ }
int (*fp)(int, char)
fp = A;
fp = B;
- callback / 확장성을 위해 사용된다.
- inline 사용 불가
* 함수 객체
- operator ()를 오버라이딩하여 사용
class A(){
public:
int operator() (){ /*something*/ }
int operator() (int a){ /*something*/ }
int operator() (int a, char b){ /*something*/ }
}
A a(); //선언 및 할당
a() //함수객체 사용, operator()() 실행
- inline화 가능 (STL에서 사용, sort, priority queue 등)
- 함수포인터에 비해 선언이 김
* Lambda
(추후 정리)
참고
https://hwan-shell.tistory.com/87
https://hwan-shell.tistory.com/86
'c,c++' 카테고리의 다른 글
printf vs puts (0) | 2021.07.11 |
---|---|
Implicit declaration of function (0) | 2021.07.11 |