私はこれを検索しましたが、私は自分自身をもっと混乱させていると思います。関数(ポインタ?)をオブジェクトに保存することはできますか?
私がやろうとしているのは、オブジェクトに関数ポインタを保存し、後で別のスレッドで呼び出すようにすることです。
私が想像したことは、関数ポインタとこの関数ポインタに渡されるパラメータをとるコンストラクタです。このオブジェクトには、前記関数ポインタを実行するrun()メソッドと、関数が実行されるまでブロックするwait_until_completed()メソッドもあります。
関数ポインタは、意味があれば別のオブジェクトからの関数になるはずです。例
Foo::*Bar(int);
のために私が持っているwait_until_completed()pthread_cond_tを使用して作業していて、この関数ポインタのものに貼り付けて、私はちょうどサークルで走り回っていますように感じるのです。
アドバイスはありますか?
EDITは:/
私は非常に悪い仕事は、私はいくつかのサンプルコードを提供できるように、このことを説明しましたように私は感じた(すべて除く:これは、作業習慣学校(任意の私の一般的な理解)ので、サードパーティのライブラリのためであります
class Foo
{
public:
Foo(void (Bar::*function) (int), int function_param)
{
// Save the function pointer into this object
this->function = &function;
// Save the paramater to be passed to the function pointer in this object
param = function_param;
}
run()
{
(*function)(param);
}
private:
// The function pointer
void (Bar::*function) (int) = NULL;
// The paramater to pass the function pointer
int param;
}
これは一言で言えば、私がやろうとしていることです。しかし、それが文法か私がばかげているかどうかは分かりませんが、実際にこれを行い、コンパイルする方法を理解することはできません。
しかし、これまでのすべてのアドバイスに感謝します:)
これは正確に私が探していたものですコードを見ても多くの助けになります!ありがとう:) – vimalloc