[engnrljh] == C++ 클래스에서 함수 포인터 사용하기 == * 제약조건 1. 클래스 멤버인 함수 포인터에 해당 클래스의 멤버함수의 주소를 할당하는 것은 가능하지만 호출은 불가능. 1. 클래스 외부에서 해당 클래스에 대한 함수 포인터를 선언하고, 클래스 멤버함수의 주소를 할당 및 호출 가능. 1. 클래스 멤버 변수인 함수 포인터에 static 멤버함수의 주소를 할당 및 호출 가능. [[TableOfContents]] === 제약조건1 === 예 {{{#!vim cpp class A { public: // 클래스 A에 대한 펑션 포인터 void (A::*FuncPtr)(void); void Func1(void) { cout<<"Func1"<FuncPtr = this->Func1; else this->FuncPtr = this->Func2; } void RunFuncPointer() { this->FuncPtr(); // <--- 컴파일 에러 발생 } }; }}} === 제약조건2 === 예 {{{#!vim cpp class A { public: void Func1(void) { cout<<"Func1"<FuncPtr = this->Func1; else this->FuncPtr = this->Func2; } void RunFuncPointer() { this->FuncPtr(); } }; int main() { A obj; int num; cout<<"select function(1, 2) : "; cin>>num; obj.SetFuncPointer(num); obj.RunFuncPointer(); return 0; } }}} [engnrljh]