[c++] 함수 객체 활용
함수 객체는 함수처럼 동작하는 객체를 말합니다. C++에서 함수 객체는 함수 포인터보다 유연하며 성능상의 이점을 제공합니다. 함수 객체는 operator()
를 오버로딩하여 호출될 때 동작을 정의합니다.
함수 객체의 장점
함수 객체는 상태를 가질 수 있으며, 런타임에 생성되는 데이터를 저장할 수 있어 매우 유연합니다. 또한 인라인화된 함수처럼 최적화 되어 빠르게 동작할 수 있습니다.
예시 코드
다음은 간단한 함수 객체의 예시 코드입니다.
#include <iostream>
// 함수 객체 정의
class Adder {
public:
Adder(int num) : num_(num) {}
int operator()(int x) const {
return x + num_;
}
private:
int num_;
};
int main() {
Adder add5(5); // 함수 객체 생성
std::cout << add5(10) << std::endl; // 출력: 15
return 0;
}
함수 객체의 활용 예시
- 함수 포인터가 필요한 곳에 함수 객체를 사용하여 런타임에 데이터를 저장하거나 조작할 수 있습니다.
- 정렬 알고리즘 등에서 정렬 순서를 변경하기 쉽게 할 수 있습니다.
함수 객체를 활용하여 더 유연하고 성능적으로 효율적인 C++ 프로그램을 작성할 수 있습니다.
참고 자료
- Stroustrup, Bjarne. “The C++ Programming Language.” Addison-Wesley, 2013.
- Vandevoorde, David, Nicolai M. Josuttis, and Douglas Gregor. “C++ Templates: The Complete Guide.” Addison-Wesley, 2003.