함수처럼 동작하는 객체
함수 포인터의 단점
1) 시그니처가 안 맞으면 사용할 수 없다.
2) 상태를 가질 수 없다.
함수 객체를 사용하려면 () 연산자 오버로딩을 해야 한다.
class Functor
{
public:
void operator()() { // do something }
private:
int _value = 0;
};
Functor functor;
functor(); // 함수처럼 사용 가능
STL에서 함수 객체를 자주 사용한다.
MMO에서 함수 객체를 많이 사용한다.
예를 들어, 서버에 캐릭터 이동 요청이 많으면 순차적으로 처리하는데, 그 요청들을 객체화 시켜서 큐에 넣어둘 수 있다.
함수 포인터와는 다르게 함수 객체를 만들어주는 시점과 실제 실행하는 시점을 분리시킬 수 있다.
차후 커맨드 패턴이라는 것으로 배울 수 있다.
개념 자체는 단순하다. 어떤 객체를 만들어서 연산자 오버로딩을 통해서 함수처럼 동작하는 객체를 만드는것이다.
'C++ > Rookiss C++' 카테고리의 다른 글
[콜백 함수] 콜백 함수 (0) | 2022.08.30 |
---|---|
[콜백 함수] 템플릿 기초 (0) | 2022.08.30 |
[콜백 함수] 함수 포인터 (0) | 2022.08.30 |
[디버깅] (0) | 2022.08.30 |
전방선언 (0) | 2022.08.29 |