1

我将 GLUT 与 C++ 一起使用,并且我正在调用一个函数,该函数glutDisplayFunc使用一个类型的参数调用void (*)(void)。出于某种原因,当我从我的一个类中使用以下 C++ 方法时:

void EventHandler::Render(void) { ... }

它抛出这个错误:

cannot initialize a parameter of type 'void (*)()' with an rvalue of type 'void'

这似乎让我想到我的 C++ 方法未声明为正确符合参数类型void (*)(void)。我该怎么做才能使我的方法与这个函数参数一起工作?

4

1 回答 1

5

C++ 方法不是普通函数。它不会转换为普通函数指针。你没有显示你的实际代码,但我假设你做了类似的事情:

glutDisplayFunc(EventHandler::Render)

如果您想以这种方式使用它,您需要创建Render一个static方法。否则声明一个自由函数并使用它。

于 2013-09-06T20:53:26.673 回答