У меня есть эта функция typedef для класса A.h:
typedef void(*PERCENTAGE_CALLBACK)(float);
И я использую одну из функций класса:
int API_GenerateLayerData(int layerIndex, unsigned char *data, int dataSize, PERCENTAGE_CALLBACK callback);
В другом классе (ClassB.cpp) у меня есть эта функция, которая ничего не возвращает (void), но принимает значение с плавающей запятой, как PERCENTAGE_CALLBACK :
void ClassB::Update(float progress)
{
emit ChangeProgress((int)progress);
}
Но когда я инициализирую объект PERCENTAGE_CALLBACK, который будет использоваться и передан функции в ClassA, он выдаст ошибку:
public void someFunction()
{
ClassA *a = new ClassA();
PERCENTAGE_CALLBACK callback = &ClassB::Update; //Error: cannot convert void ti PERCENTAGE_CALLBACK
a->API_GenerateLayerData(someNum, someData, count, callback);
}
Как инициализировать обратный вызов класса A, который указывает на функцию обновления класса B?