私は C++ での演算子のオーバーロードを理解しようとしていますが、+ や [] などの演算子を注意深く使用すると、その有用性がわかります。() のオーバーロードに興味があります。Boostは統計クラスでそれを使用しているようで、私はそれらを使用できますが、私が何をしているのか本当に理解していません.
() 演算子をオーバーロードすると便利な場合の簡単な例を誰かが提供できますか? みんなありがとうピート
私は C++ での演算子のオーバーロードを理解しようとしていますが、+ や [] などの演算子を注意深く使用すると、その有用性がわかります。() のオーバーロードに興味があります。Boostは統計クラスでそれを使用しているようで、私はそれらを使用できますが、私が何をしているのか本当に理解していません.
() 演算子をオーバーロードすると便利な場合の簡単な例を誰かが提供できますか? みんなありがとうピート
operator()のオーバーロードの一般的な使用法は、関数オブジェクトまたはfunctors
です。以下の例に示すように、operator()を定義するクラスのオブジェクトを使用して、関数であるかのように使用できます。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class multiply
{
private:
int x;
public:
multiply(int value):x(value) { }
int operator()(int y) { return x * y; }
int getValue() { return x; }
};
int main()
{
multiply m(10); //create an object
cout << "old value is " << m.getValue() << endl;
int newValue = m(2); //this will call the overloaded ()
cout << "new value is " << newValue << endl;
}
概要: C++ クラスで () 演算子をオーバーロードすると、さまざまな型と数のパラメーターを使用してクラス メソッドを実装し、それぞれに異なる機能を提供できます。() をオーバーロードするときは注意が必要です。これを使用しても、何が行われているかの手がかりが得られないからです。用途は限られていますが、行列操作などに効果的です。