0. 이전 방식의 한계점
이전 함수 포인터(1)에서 사용한 방법은 정적 함수와 전역 함수만 넣을 수 있다.
1. 멤버 함수 포인터
class Knight
{
public:
int GetHp(int, int)
{
return _hp;
}
public:
int _hp;
};
typedef int(Knight::*PMEMFUNC)(int, int);
int main()
{
Knight k1;
PMEMFUNC mfn;
mfn = &Knight::GetHp;
(k1.*mfn)(1,1);
}
mfn이 함수 타입이라는 것을 알리기 위해서 k1.*mfn 의 문법을 사용한다.
2. 동적 할당에서 멤버 함수 간접 호출
//~~
Knight* k2 = new Knight;
(k2->*mfn)(1, 1);
delete k2;
}
'기초 C++ 스터디 > 객체지향' 카테고리의 다른 글
8-4. 템플릿 기초(1) (0) | 2023.06.08 |
---|---|
8-3. 함수 객체(Functor) (0) | 2023.06.08 |
8-1. 함수 포인터(1) (0) | 2023.06.08 |
6-7. 전방 선언 vs 포함(#include) (0) | 2023.06.05 |
6-5. 캐스팅 (0) | 2023.06.02 |