<分区>
我目前正在学习 C++ 中的 OpenGL。
我正在尝试通过设置 glfwSetKeyCallback(this->window, ctrl->key_callback);
来读取键盘输入,其中 this->window
是我的 GLFWwindow* window
和 ctrl->key_callback
是我的自定义对象 Controller
的一个方法。
我在使用 MSVC 时遇到编译器错误:
non-standard syntax; use '&' to create a pointer to member
如何通过 Controller* ctrl
指针指示 key_callback
方法?
出现错误的地方:
void Class1::set_callback(Controller* ctrl)
{
glfwSetKeyCallback(this->window, ctrl->key_callback);
}
Controller .h
#include "Class1.h"
#include "GLFW/glfw3.h"
class Controller
{
public:
Controller(Class1* c);
~Controller();
void key_callback(GLFWwindow* glwindow, int key, int scancode, int action, int mods);
private:
Window* window;
};
我在 main.cpp 中调用 set_callback
#include "Class1.h"
#include "Controller.h"
int main()
{
Class1* my_class = new Class1();
Controller* controller = new Controller(my_class);
my_class->set_callback(controller);
return 0;
}
如果我没有正确表述我的问题/标题,请告诉我,我对这种语法很困惑