gpt4 book ai didi

c++ - 使 SDL 调用纯虚成员函数作为事件回调?

转载 作者:行者123 更新时间:2023-11-28 04:53:48 25 4
gpt4 key购买 nike

我目前正在开发一个小型应用程序类。它应该使使用 SDL2 的某些步骤变得不那么痛苦。例如,我希望在实现派生类(应用程序类是基接口(interface))时重载一个名为 handleEvent 的函数,以自动传递当前 SDL_Event,以便用户可以使用它做一些事情。

我认为使用内置的 SDL 函数 SDL_AddEventWatch 创建回调比启动线程并让它手动检查新事件并调用成员函数要好。

然而,SDL Documentation for the function没有指定使用成员函数作为“过滤器”。而且我什至在使用纯虚拟成员函数!

请注意,此函数唯一需要的参数(从我的角度来看)是指向要处理的偶数的指针。然而,仍然需要访问 this 指针,以便用户可以直接更改类中的内容。

实现它的正确方法是什么?

最佳答案

我会使用 libffi 的闭包来围绕与预期签名匹配的实例创建包装器。用于初始化闭包的函数将采用保存的实例参数和任何 SDL 传递并将它们转发到虚拟函数。

关于c++ - 使 SDL 调用纯虚成员函数作为事件回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47612687/

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