Я хочу передать мой класс Worker указатель на Funtion, но что-то не так, когда им нужно вызвать конструктор ...Как передать функцию-член в конструктор класса?
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();
}
Это то, что я хочу сделать ... Работник должен выполнять вызов функции любой функции. (обновление является недействительным без атрибутов, а не статическим или Const и т.д.)
main.cpp:
_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'. Вы не передаете функцию конструктору, а его результат. –