본문 바로가기

Computer

함수 포인터(Function Pointer)

* 함수 포인터를 void * 에 담았다가 꺼내기.


class 맴버 함수
의 경우 static 맴버 함수가 아닌경우엔 함수 포인터를 다른 곳에 할당 할 수 없다.
이유는 class Instanse가 생성되지 않은 상태에서는 dynamic 맴버 변수에 접근 했을때, 실체가 없는 허상에 접근하게되어 문제를 일으키기 때문이다.
반면에 static 맴버 함수에 접근이 가능한 이유는 static 맴버 함수는 dynamic 맴버 변수에 접근하는 것을 허용하지 않기때문에 함수 포인터로 다루는것이 허용된다.(당연히 static 맴버 변수에 접근하는것은 허용한다.)

아주 제한적이지만 우회적인 방법으로 일반 맴버 함수를 함수 포인터로 다룰 수 있는 방법이 있다.



예제 파일: