C++;:无法初始化类型为';无效(*)和#x27;具有类型为';无效'; 我用C++来调用GLUT,调用一个名为“代码> GaldStudiFunc < /Cuff>的函数,使用了一个类型的代码:空洞(*)(空)。由于某种原因,当我从以下一个类中使用以下C++方法: void EventHandler::Render(void) { ... }

C++;:无法初始化类型为';无效(*)和#x27;具有类型为';无效'; 我用C++来调用GLUT,调用一个名为“代码> GaldStudiFunc < /Cuff>的函数,使用了一个类型的代码:空洞(*)(空)。由于某种原因,当我从以下一个类中使用以下C++方法: void EventHandler::Render(void) { ... },c++,function,opengl,methods,glut,C++,Function,Opengl,Methods,Glut,它抛出以下错误: cannot initialize a parameter of type 'void (*)()' with an rvalue of type 'void' 这似乎让我觉得我的C++方法没有被声明为正确地符合参数类型空隙(*)(空白)< /C>。怎样才能使我的方法与这个函数参数一起工作?< p>一个C++方法不是一个正常函数。它不会转换为普通函数指针。您没有显示实际代码,但我假设您执行了以下操作: glutDisplayFunc(EventHandler::Render)

它抛出以下错误:

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

这似乎让我觉得我的C++方法没有被声明为正确地符合参数类型<代码>空隙(*)(空白)< /C>。怎样才能使我的方法与这个函数参数一起工作?

< p>一个C++方法不是一个正常函数。它不会转换为普通函数指针。您没有显示实际代码,但我假设您执行了以下操作:

glutDisplayFunc(EventHandler::Render)

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

< P>一个C++方法不是一个正常函数。它不会转换为普通函数指针。您没有显示实际代码,但我假设您执行了以下操作:

glutDisplayFunc(EventHandler::Render)

如果希望以这种方式使用,则需要使用
Render
a
static
方法。否则,声明一个免费函数并使用它。

那么就可以了:声明为
静态
,它工作得很好,谢谢!不幸的是,使用静态invkoes时,没有定义编译器依赖的行为。请看我昨天就同一个问题所作的回答:我在你的回答中没有看到任何关于
静态
。@CarlNorum:请看我对另一个答案的评论。然后就可以了:声明为
静态
,它工作得很好,谢谢!不幸的是,使用静态invkoes时,没有定义编译器依赖的行为。查看我对昨天提问的同一主题的回答:我在你的回答中没有看到任何关于
静态的内容。@CarlNorum:查看我对另一个答案的评论。