我正在使用带有C ++的GLUT,并且我正在使用类型为glutDisplayFunc
的单个参数调用名为void (*)(void)
的函数。出于某种原因,当我从我的一个类中使用以下C ++方法时:
void EventHandler::Render(void) { ... }
它抛出了这个错误:
cannot initialize a parameter of type 'void (*)()' with an rvalue of type 'void'
这似乎让我觉得我的C ++方法没有被声明为正确遵守参数类型void (*)(void)
。如何使我的方法使用此函数参数?
答案 0 :(得分:5)
C ++方法不是正常的功能。它不会转换为普通函数指针。你没有显示你的实际代码,但我假设你做了类似的事情:
glutDisplayFunc(EventHandler::Render)
如果您想以这种方式使用,则需要Render
static
方法。否则声明一个自由函数并使用它。