gpt4 book ai didi

c++ - 将回调函数移动到类会导致错误!

转载 作者:行者123 更新时间:2023-11-30 00:58:41 26 4
gpt4 key购买 nike

在我将一些 OpenGL 代码从 main 函数移动到一个新类后,我在下一行出现了以下错误:

glutDisplayFunc(OnDisplay);

error C3867: 'Room::OnDisplay': function call missing argument list; use '&Room::OnDisplay' to create a pointer to member

我的错是什么?

最佳答案

glutDisplayFunc 需要一个 void (*func)(void),但你传递的是一个 void (Room::*func)(void)

由于类方法接收一个隐式的this 参数,它们的指针类型与常规函数指针有根本的不同。它们之间无法进行转换。

您所能做的就是使 OnDisplay 成为 Room 的静态成员。从那里您可以将调用转发到具体 Room 实例的成员函数(因为按照设计只有一个过剩显示回调并且您是从过程代码迁移过来的,我假设您只有一个 Room 对象某处)。

关于c++ - 将回调函数移动到类会导致错误!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5825316/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com