*using & typedef 을 이용한 함수포인터 사용 단점
void (*PF)(void);
PF = &HelloWorld;
1. 시그니처가 안 맞으면 사용할 수 없다.
2. 상태를 가질 수 없음.
=> ex) Knight._hp 값이 없음.
*함수 객체 ( Functor )
=> 함수처럼 동작하는 객체
=> ( ) 연산자 오버로딩 을 이용해 동작 함수를 정의.
*MMO 에서 함수 객체를 사용하는 예시
클라 <-> 서버
=> 서버 : 클라가 보내준 네트워크 패킷을 받아서 처리.
ex) 클라 : 나 (5, 0) 좌표로 이동 요청.
=> 요청사항을 객체로 만들어줌.
즉, 요청사항을 만들어주는 시점 / 그것을 실제 실행하는 시점을 분리 가능.
class MoveTask
{
public:
MoveTask(int Y, int X) : _posY(Y), _posX(X) { }
public:
void operator()()
{
cout << "해당 좌표로 이동" << endl;
}
public:
int _playerId;
int _posX;
int _posY;
};
*요청사항 만들어두기
MoveTask MT(100, 100);
*실행
MT();
본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.
'프로그래밍 > C++' 카테고리의 다른 글
#53. 클래스 템플릿 (0) | 2022.07.20 |
---|---|
#52. 함수 템플릿 (0) | 2022.07.20 |
#50. 함수 포인터 (0) | 2022.07.20 |
#49. 전방 선언 (0) | 2022.07.20 |
#48. C++ 캐스팅 (0) | 2022.07.20 |