함수포인터 C언어 시절에는 굉장히 중요한 문법이었지만. C++로 넘어가면서 그 중요도가 많이 줄어들었음.
함수 포인터 : 함수의 주소를 저장하는 용도의 포인터 함수의 이름이 곧 함수가 저장되어 있는 메모리 공간의 주소다. 그것을 저장하는 것이 함수 포인터.
반환타입(*포인터 변수이름)(매개변수 형식)
void (* pFuc)() = Render;
void Render(){
cout << "HelloWorld";
}
pFunc();
함수 포인터는 함수의 이름만 알고 있다면 여러 함수를 필요에 따라 변경해가면서 사용할 수 있음.
그러나, C++을 들어가면서 캡슐화 / 은닉화 라는 개념이 들어가게 되며 주소만 알고 있다면 모두가 접근할 수 있던 이전의 방식과 코드 철학이 맞지 않게 되어가면서 점차 사용성이 줄어들게 되었음.
int Add(int Dst, int Src);
int(*pClac)(int, int) = Add;
int Add(int Dst, int Src){
return Dst + Src;
}
pCalc(5,5);
함수 포인터는 배열로 선언하여 여러 함수를 저장하는 용도로 사용하는 것이 일반적임.