함수처럼 동작하는 객체

 

함수 포인터의 단점

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

+ Recent posts