class Player
{
public:
void Attack();
};
void Player::Attack()
{
//플레이어의 공격
}
int main()
{
Player NewPlayer;
void (Player:: *PlayerAtt)() = &::Player::Attack;
(NewPlayer.*PlayerAtt)();
}
이렇게 멤버함수 포인터를 사용할 수 있다.
명확하게 형을 명시해 줘야하고 함수를 넣어줄때도 &를 붙여주고
함수의 풀네임을 넣어줘야 한다.
정리
콜백이란 A라는 객체가 있고 B라는 객체가 있을때
B가 A의 함수를 대신 사용해 주는 경우를 콜백이라고 한다.
대표적인 예가 UI가 있다.UI는 게임에서 필수적이지만 버튼의
기본기능은 굉장히 기본적이다.그치만 해야하는 일이
버튼의 종류마다 다를 경우가 많다.
그럴 경우에 콜백 방식으로 처리한다.
'C++' 카테고리의 다른 글
정적,동적 바인딩 (0) | 2020.12.23 |
---|---|
Template (0) | 2020.12.23 |
Function Pointer(함수 포인터) ,CallBack 함수 (0) | 2020.12.22 |
ClassBytePadding(바이트패딩) (0) | 2020.12.22 |
깊은복사,얕은복사 (0) | 2020.12.22 |