728x90
반응형
이전 포스팅에서 함수 포인터에 관하여 작성하였습니다.
이번 포스팅에서는 함수 객체(functor)에 대해 작성해보도록 하겠습니다.
다시 한번 함수 포인터의 단점을 설명드리자면,
- 시그니처가 안 맞으면 사용할 수 없다
- 함수 안에서 데이터를 바인딩해버려 상태를 가질 수가 없다
라는 단점이 있습니다.
함수 객체는 위의 단점을 극복하기 위해 객체를 함수처럼 사용하는 것을 말합니다.
클래스나 구조체를 만들고 이들의 객체를 함수의 기능으로써 동작하게 하는 것이 바로 함수 객체입니다.
위의 구조체 즉, 함수객체 안에서 내부 데이터가 필요하다면 우리는 언제든지 접근하여 데이터를 뽑아올 수 있습니다.
정리하자면,
함수 포인터는 동작만이 존재하고
함수 객체는 동작과 데이터가 둘 다 존재하는 것입니다.
필요에 따라 사용할 때 함수 포인터와 함수 객체는 매우 강력한 도구가 될것입니다.
728x90
반응형
'C++' 카테고리의 다른 글
virtual , override 키워드 (0) | 2024.03.18 |
---|---|
람다 (0) | 2024.03.18 |
함수 포인터 (0) | 2024.03.11 |
멀티바이트와 유니코드 (0) | 2024.02.26 |
C스타일 문자열과 C++스타일 문자열 (0) | 2024.02.26 |