2016-09-09 4 views
-6

関数オブジェクト:関数オブジェクト:

  1. メンバ関数である演算子()のクラスのインスタンスです。
  2. は、operator - >がメンバー関数であるクラスのインスタンスです。
  3. 任意関数
  4. へのポインタである私の試み

クラスのメンバ関数である:

関数オブジェクト、またはファンクタは(二つの用語が同義である)単純にあたかも関数であるかのように呼び出せるオブジェクト。通常の関数は関数オブジェクトであり、関数ポインタも同様です。より一般的にはoperator()を定義するクラスのオブジェクトもそうです。

Functor(関数オブジェクトまたはFunctionals)は、単純にobject +()となります。

オプション(3)は本当ですが、オプション(1)と混同していますが、それは本当ですか?

説明できますか?

答えて

0

関数オブジェクトメンバ関数として括弧演算子を定義するクラスインスタンスです。関数オブジェクトが関数として使用されるとき、関数が呼び出されるたびにかっこ演算子が呼び出されます。次のクラス定義を考えてみましょう:

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

私たちはクラスbiggerThanThree、我々は関数呼び出しの構文を使用して、このオブジェクトを参照するたびのインスタンスを作成する場合は、括弧演算子メンバ関数が呼び出されます。


参考:

  1. http://www.cplusplus.com/reference/functional/binary_function/
  2. https://msdn.microsoft.com/en-in/library/aa985932.aspx
関連する問題