함수 객체는 상태를 가진 객체를 함수처럼 호출하게 만든다

operator()를 정의하면 객체가 알고리즘의 조건자나 변환 함수로 들어갈 수 있습니다. 멤버 변수는 호출 사이에 유지되는 상태입니다.

정의
class AddAndPrint { int value; public: AddAndPrint(int v) : value(v) {} void operator()(int n) const { cout << n + value; } };
요소역할예시
상태객체가 기억하는 값value = 10
호출함수처럼 실행되는 연산자obj(3)
전달알고리즘에 동작을 주입for_each(..., AddAndPrint(10))
효과같은 로직, 다른 상태 재사용10 더하기 / 100 더하기
일반 함수와 달리 함수 객체는 “행동 + 상태”를 하나의 타입으로 알고리즘에 넘길 수 있습니다.