nakka soft world !

함수 객체(function object, fonctor) 본문

프로그래밍언어/C++

함수 객체(function object, fonctor)

nakka 2017. 3. 19. 03:01
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