【发布时间】:2016-01-01 08:33:10
【问题描述】:
我的代码很大,中间有一个错误。这是有错误的部分代码的简化版本。
这是我得到的错误:
// 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*/
明显调用括号前的表达式必须有 (pointer-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);
}
有人知道怎么解决吗?
【问题讨论】:
标签: c++ pointers function-pointers pointer-to-member