🙇‍♀️함수 객체


🪐함수 객체

함수 객체 (Functor) : 함수처럼 동작하는 객체

함수포인터는 함수 시그니처를 맞춰하는 단점이 있는데 함수 객체는 이를 극복 할 수 있다. 함수 포인터는 상태를 가질 수 없다. ( 클래스에서의 멤버 변수)

함수 객체란 곧 클래스인데 ()연산자를 오버로딩한 것이다.

void operator()()
{
    cout << "Functor Test" << endl;
}

bool operator()(int num)
{
    cout << " bool operator Functor" << endl;
}
  • MMO에서 함수 객체를 사용하는 예시
    • 클라 <-> 서버
    • 서버 : 클라가 보내준 네트워크 패킷을 받아서 처리
    • 클라 : (5, 0) 좌표로 이동시켜줘!
class MoveTask
{
public:
    void operator()()
    {
         cout << "해당 좌표로 이동" << endl;
    }
public:
    int _playerId;
    int _posX;
    int _posY;
};

이렇게 좌표를 이동요청이 올 때 MoveTask task;가 생길 때 실행 된 시간과 차이가 생기는 정보를 챙길 수 있다.

태그:

카테고리:

업데이트: