私は目的球に私のクラスの労働者のポインタを渡したいが、イムは、コンストラクタを呼び出すときに何かが間違っている...メンバー関数をクラスコンストラクタに渡すにはどうすればよいですか?
Worker.h
class Worker : public QObject
{
Q_OBJECT
public:
Worker(void (*process)());
public slots:
void work();
signals:
void error(QString error);
void paused();
private:
void (*_task)();
};
Worker.cpp:
Worker::Worker(void (*task)())
{
_task = task;
}
void Worker::work()
{
_task();
paused();
}
これは私がしたいことです... ワーカーはどの関数の関数呼び出しも実行する必要があります。
MAIN.CPP(更新属性なし空隙はなく、静的またはCONST等である):
_worker = new Worker(someClass->Update());
['std :: function'](http://en.cppreference.com/w/cpp/utility/functional/function)と[' std :: bind'](http: //en.cppreference.com/w/cpp/utility/functional/bind)。 –
あなたの問題については、あなたは* Update *関数を呼び出します。関数をコンストラクタに渡すのではなく、その結果を渡します。 –