首先,GLUT不适用于严肃的应用工作.这是简单的图形演示.为此,它很好.如果你发现自己试图在GLUT中做认真的工作,你会发现自己花了很多时间来解决它的局限性.这种限制只是您最终会遇到的许多限制之一.GLFW虽然仍然具有这种限制(尽管下一版本不会),但对于严肃的应用工作来说通常是优越的.
其次,解决这个问题的"最体面"方式取决于你正在做什么.如果你只有一个窗口,那么正确的解决方案只是一个简单的静态函数,它可以将全局指针(或返回全局指针的函数)发送到你感兴趣的任何类.
如果你有多个窗口,那么你需要的是一个std::map从GLUT的窗口标识符映射到指向某个对象的指针的全局窗口.然后,您可以获取调用特定函数的窗口,并使用映射将该调用转发到表示该窗口的特定对象.