У меня есть большой код, и у меня есть ошибка в середине. Вот упрощенная версия частей кода с ошибкой.Ошибка вызова указателя на функцию-член в C++
И это ошибка я получаю:
// Followings are declared in the header
struct Task {
public:
_COORD p1;
int p2;
object p3;
speed p4;
bool(Game::*function)(_COORD, int, object, speed);
};
std::vector<Task> tasks;
// Followings are defined in the source
void Game::timer() {
(some code here)
tasks[i].function(tasks[i].p1, tasks[i].p2, tasks[i].p3, tasks[i].p4); /*error here*/
выражения предшествующего скобку кажущегося вызова должно иметь (указатель-to) типа функции.
}
void Game::explode(bool(Game::*function)(_COORD, int, object, speed), _COORD p1, int p2, object p3, speed p4) {
ExplodeTask task;
task.function = function;
task.p1 = p1;
task.p2 = p2;
task.p3 = p3;
task.p4 = p4;
tasks.push_back(task);
}
Кто-нибудь знает, как это исправить?
Ну я не знаю, о неприменении этих вещей! Вот почему я использовал указатель для работы! –
Большое вам спасибо за ваш ответ! это было так полезно, поэтому я дал ему +1, но другой ответ был точным ответом на вопрос, поэтому я принял это! Но чтобы убедиться, что я был достаточно признателен, я пошел и дал много + 1s вашим недавним сообщениям :) Я пойду, узнаю, что функциональная библиотека! –
Большое спасибо. Я рад, что вы нашли мой ответ полезным –