C++ Rookiss Part1 C++ 프로그래밍 입문 : 함수 객체
🙇♀️함수 객체
🪐함수 객체
함수 객체 (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;
가 생길 때 실행 된 시간과 차이가 생기는 정보를 챙길 수 있다.