nakka soft world !
함수 객체(function object, fonctor) 본문
728x90
함수 객체(function object, fonctor)
class Plus
{
public:
int operator()(int a, int b)
{
return a + b;
}
};경
int main()
{
Plus p;
cout << p(1, 2) << endl; // p.operatoe()(1, 2)
a + b; // a.operator+(b)
a - b; // a.operator-(b)
a(); // a.operator()() // 괄호도 연산자가 재정의 된다.
a(1, 2); // a.operator()(1, 2)
}
// 함수 객체 : ()를 재정의 하여 함수처럼 사용 가능한 객체.
// 확장을 위해 template으로 변경
template<typename T> class Plus
{
public:
T operator()(T a , T b) const
{
return a + b;
}
};
#include <functional> //c++표준 함수 객체들...
int main()
{
plus p;
cout << p(1, 2) << endl; // p.operatoe()(1, 2)
}
728x90
'프로그래밍언어 > C++' 카테고리의 다른 글
대입연산자 (assignment operator) (0) | 2017.03.19 |
---|---|
스마트 포인터 (Smart Pointer) (0) | 2017.03.19 |
증가/감소 연산자 재정의 (0) | 2017.03.19 |
cout & ostream (0) | 2017.03.19 |
연산자 재정의 개념 (0) | 2017.03.19 |
Comments