#include <iostream>
// 함수 객체 클래스 정의
class MyFunctionObject {
public:
// 호출 연산자 정의
void operator()(int x) const {
std::cout << "함수 객체가 호출되었습니다. 인자: " << x << std::endl;
}
};
int main() {
// 함수 객체 생성
MyFunctionObject func;
// 함수 객체 호출
func(42);
return 0;
}
즉, 아래 클래스와 비슷하게
ㅁfunctor의 멤버함수 addvalue
클래스의 멤버 함수를 호출하는 것이랑 다를게 없음
👉 즉, operator()의 호출 연산자로 오버로딩해 새롭게 만들어주는 것
이런 느낌
c. 함수 객체의 주요 이점
1) 상태 유지
클래스의 멤버 변수를 통해 상태를 유지
함수 포인터로는 구현하기 어려운 상태를 가진 함수를 쉽게 표현할 수 있게 함
2) 다형성
클래스의 다형성을 활용할 수 있음상속과 가상함수를 통해 다양한 동작을 제공
3) 캡슐화
관련된 동작과 상태를 하나의 단위로 묶을 수 있음이는 코드의 가독성과 유지보수성을 향상시킴