0
クラスに関数を格納し、単にこの関数をメンバ関数内で呼び出したいとします。これは関数ポインタを使って可能ですが、私はこれにstd::function
を使いたいと思います。ここでC++のクラスへの関数の受け渡し
が動作していないいくつかのコードですが、私は何をしたいのかを証明する必要があります
double foo(double a, double b){
return a + b;
}
class Test{
private:
std::function<double(double,double)> foo_ ;
public:
Test(foo);
void setFoo(foo) {foo_ = foo;}
double callFoo(double a, double b){return foo_(a,b);}
};
int main(int argc, char const *argv[]) {
Test bar = Test(foo);
bar.callFoo(2,3);
return 0;
}
*ここでは動作しないコードがあります。*動作していない/動作していない理由を指定するとよいでしょう。コンパイルしない?そうであればエラーを出してください。ランタイムエラー?コールスタックやエラーを提供する。間違った出力?入力/出力を提供する。 – Borgleader