C/C언어 문법

함수 포인터 예제

lwj789 2023. 1. 26. 16:08

 

CiGuardAgentDlg : 다이얼로그 클래스

*fcnPtr : AddEventString(const wchar_t *const ap_stirng, ...) 함수이고 리스트 박스에 이벤트 로그를 추가하는 함수

 

HTTP_Post hp : HTTP_Post클래스 객체 생성

hp.Request(this, fcnPtr)HTTP_Post 클래스에서 CiGuardAgentDlg클래스에 있는 리스트 박스를 사용하기 위해 함수 포인터로 넘겨줌으로써 HTTP_Post에서도 리스트 박스를 사용할 수있다. 

또한 메인 dlg의 주소값을 구하지 않아도 된다.

1
2
3
4
5
6
7
CiGuardAgentDlg *= this;
void (CiGuardAgentDlg:: * fcnPtr)(const wchar_t *const, ...) = NULL;
fcnPtr = &CiGuardAgentDlg::AddEventString;
(c->*fcnPtr)(L"POST");
 
HTTP_Post hp;
hp.Request(this, fcnPtr);
cs

 

 

 

 

아래 블로그에 함수 포인트 설명이 매우 잘되어 있어서 링크 걸어둠.

https://velog.io/@meong9090/cpp-%ED%95%A8%EC%88%98%ED%8F%AC%EC%9D%B8%ED%84%B0-%EA%B0%9D%EC%B2%B4%EC%9D%98-%ED%95%A8%EC%88%98%ED%8F%AC%EC%9D%B8%ED%84%B0