したがって、最初のパラメーターとして関数を受け取る Romberg という関数があります。
int Romberg(double (*f)(double), ... );
実行されると、渡された関数がいくつかの値に適用されます。
クラスでは、次のメソッドを定義しました。
double Funktion::q(double x){
return(sqrt(1.0+fd(x)*fd(x)));
};
void Funktion::compute_bogen(){
Romberg(q, ... );
};
fd
同じクラスの別のメソッドはどこにありますか。ただし、これは機能しません。コードを次のように変更してみました。これにより、メソッドが Romberg 関数に正常に渡されました。しかし、渡された関数の適用に失敗します:
int Romberg(double (Funktion::* &f)(double), ... );
void Funktion::compute_bogen(){
Romberg(&Funktion::q, ... );
};
次のエラー メッセージが表示されます。
error C2064: term does not evaluate to a function taking 1 arguments
今のところ、私が構築したクラス システム全体を破棄せずにこれを機能させる方法がわかりません。