Извините, если это название сформулировано плохо ... но вот что я пытаюсь сделать ...как правильно вызвать функцию, когда она является указателем на функцию класса, но за пределами этого класса
I «ве получил STRUCT„экран“, который имеет указатель на эти функции, которые являются членами класса„Test“...
typedef struct screen{
...
bool (Test::*drawfunc)(b2World*, objectdata*, actorlist*, camera*);
...
}
class Test{
...
screen* tscreen;
bool Test::draw(b2World* world, objectdata* objects, actorlist* al, camera* cam);
...
}
поручает указатель drawfunc в создании моего тестового экземпляра„тест“, как это ... и это выглядит странно для меня, я не совсем понимаю это, но оно компилируется ...
Test::Test()
{
...
tscreen->drawfunc=&Test::draw;
...
}
, но я не могу понять, как вызвать функцию drawfunc в моей основной ... Я пробую это так, и это дает ошибку «ошибка C2064: термин не оценивает функцию с 4 аргументами»
int main (int acrgc, char** argv){
...
Test* test = new Test();
test->tscreen->drawfunc(test->m_world, test->objects, test->tscreen->al, test->tscreen->cam);
...
}
Я знаю, что вызов неправильный, я никогда не указываю, какой экземпляр класса «Тест» для drawfunc работать из ... хотя все переменные и указатель на эту функцию принадлежат экземпляру " тест "...
... и за неизбежное" Почему вы все равно пытаетесь это сделать? " ответ ... или в случае, если нет способа вызвать эту функцию или что-то еще ... Я просто хочу, чтобы иметь возможность назначать разные функции «drawfunc», и я хочу, чтобы эти функции могли использовать все переменные внутри экземпляра «test», я могу получить его так, чтобы drawfunc указывал на любую старую функцию (bool (drawfunc) (b2World, objectdata *, actorlist *, camera *);), но он должен иметь возможность доступа к другому переменные внутри тестового экземпляра «test». Итак ... действительно, как бы вы ни делали, это было бы здорово. Благодарю.
Почему бы не поместить немного более простой, но полный образец, который отражает вашу проблему в вашем вопросе. Как это довольно сложно дать вам правильный ответ за то, что у вас есть. –