2016-09-09 6 views
-6

함수 객체 :함수 객체 :

  1. 이 멤버 함수 인 조작자()에 대한 클래스의 인스턴스이다.
  2. 은 연산자 ->가 멤버 함수 인 클래스의 인스턴스입니다.

    함수 객체, 또는은 Functor (두 용어가 동의어) 단순히 :

  3. 어떤 기능
  4. 에 대한 포인터는

내 시도가 클래스의 멤버 함수입니다 그것이 마치 함수 인 것처럼 호출 될 수있는 모든 객체. 일반적인 함수는 함수 객체이므로 함수 포인터도 마찬가지입니다. 보다 일반적으로 operator()를 정의하는 클래스의 객체도 마찬가지입니다.

펑터 (함수 개체 또는 기능)는 단순히 개체 +()로 표시됩니다.

옵션 (3)은 사실이지만 옵션 (1)과 혼동 스럽습니까? 사실입니까?

설명해 주시겠습니까?

답변

0

함수 객체이 멤버 함수로서괄호 연산자를 정의하는 클래스인스턴스이다. 함수 객체가 함수로 사용될 때 함수가 호출 될 때마다 괄호 연산자가 호출됩니다. 다음 클래스 정의를 생각해 우리가 biggerThanThree 클래스, 우리는 함수 호출 구문을 사용하여이 객체를 참조 할 때마다의 인스턴스를 만드는 경우

class biggerThanThree 
{ 
    public: 
    bool operator() (int val) 
    { return val > 3; } 
}; 

를 괄호 연산자 멤버 함수가 호출됩니다.


참조 :

  1. http://www.cplusplus.com/reference/functional/binary_function/
  2. https://msdn.microsoft.com/en-in/library/aa985932.aspx