bea*_*akr 1 c++ opengl methods glut function
我正在使用GLUT和C++,我正在调用一个glutDisplayFunc使用该类型的单个参数调用的函数void (*)(void).出于某种原因,当我从我的一个类中使用以下C++方法时:
void EventHandler::Render(void) { ... }
Run Code Online (Sandbox Code Playgroud)
它抛出此错误:
cannot initialize a parameter of type 'void (*)()' with an rvalue of type 'void'
Run Code Online (Sandbox Code Playgroud)
这似乎让我觉得我的C++方法没有被声明为正确符合参数类型void (*)(void).我该怎么做才能让我的方法使用这个函数参数?
C++方法不是正常的函数.它不会转换为普通函数指针.你没有显示你的实际代码,但我假设你做了类似的事情:
glutDisplayFunc(EventHandler::Render)
Run Code Online (Sandbox Code Playgroud)
如果你想以这种方式使用它,你需要创建Render一个static方法.否则声明一个自由函数并使用它.