함수포인터 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);

함수 포인터는 배열로 선언하여 여러 함수를 저장하는 용도로 사용하는 것이 일반적임.