[C++]함수 객체 (Function Object)

함수 객체란 함수처럼 사용 가능한 클래스 객체입니다. 정확히 말하면 ”()”연산자를 오버로딩 한 객체인데, 함수자(Functor)라고도 합니다. 함수 객체는 함수의 형태를 가진 객체이므로 멤버 변수와 멤버 함수를 가질 수 있고, 반환형이나 매개변수가 같더라도 객체의 타입이 다르면 전혀 다른 타입으로 인식하게 됩니다.

아래 코드를 보죠.

 

이렇게 구조체에 ()연산자 오버로딩을 통해 구조체 객체를 함수처럼 사용하는 것입니다. 이 함수객체를 쓰는 이유는 속도가 일반 함수보다 빠른데, 함수 객체는 인라인 될 수 있고, 컴파일러가 쉽게 최적화할 수 있기 때문입니다.