在我的一种方法中,传递了一个带有两个参数的函数,并保存为 rightClick。但是,因为它在一个静态函数中,编译器希望该函数之前被初始化。我该怎么办?
鼠标.cpp
void Mouse::clicked(int button, int state, int x, int y)
{
if(button == GLUT_LEFT_BUTTON) {
if(state == GLUT_DOWN) {
isDragging = true;
CurrentX = x;
CurrentY = y;
}
else
{
isDragging = false;
}
}
else if (button == GLUT_RIGHT_BUTTON)
{
if (state == GLUT_DOWN)
{
isDragging = true;
rightClick(x,y);
}
}
}
void Mouse::setRightClickFunction(void (*func)(int, int))
{
rightClick = func;
}
setRightClickFunction 在点击之前被调用。除了现在我遇到了一个不同的问题:“Mouse::rightClick”,引用自:Mouse.o 中的 Mouse::clicked(int, int, int, int)