프로그래밍/C++

#51. 함수 객체

코딩하는상후니 2022. 7. 20. 22:10

*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