関数をパラメーターの 1 つとして受け取り、それをメンバー変数に格納する必要があるクラスの .hpp ファイルを作成しています。これまでのところ、私のコードは次のようになります。
template<typename Function> class myClass
{
public:
myClass(Function function) : pvFunction( function ) {}
//Functor operator
double operator() (double x) const{
return pvFunction(x+4);
}
private:
Function pvFunction
}
プログラムが無意味に見えるのは、プログラムが返す値が今のところ重要ではないからです。このクラスに関数を渡し、そのファンクター演算子を使用する方法を理解しようとしているだけです。唯一の問題は次のとおりです。
1) このクラス定義が正しいかどうかはわかりません。つまり、これは、このクラスのオブジェクトにパラメーターとして渡される任意のタイプの関数を受け入れる適切な方法です。
2) プログラムでこのクラスのインスタンスを作成するにはどうすればよいですか? 関数を新しいオブジェクトに渡して呼び出すにはどうすればよいですか?
かなり長い間これに取り組んでいて、それを理解できないようです
編集:
私のプログラム ファイル main.cpp では、次のコードでエラーが発生します。
double function(double);
int main()
{
myClass<double> myClassObject((function));
return 0;
}
double function(double x)
{
return (x+3.0);
}