我想使用 glut 的鼠标回调(有条件地添加/擦除)来更改向量,但是我不能将任何额外的参数传递给回调函数,并且处理所有回调glutMainLoop()
不需要参数。我能想象到的唯一规避方法是全局声明向量,但我听说这是不好的做法,所以这是我最后的手段。
使用全局变量时会出现这种情况吗?如果是这样,有没有"最好的方法"来做到这一点?如果没有,我应该如何处理这个问题。
经过进一步的研究,似乎我可以用指针来完成这一点。
全局声明一个指向向量的指针,并在回调中调用所需的方法,例如。 vector->push_back(x)
在 main 中,创建矢量对象并将其地址分配给全局指针,并根据需要附加回调。
您可能想阅读有关单例的更多信息。它们是处理大型代码库中的全局结构的好方法。
http://en.wikipedia.org/wiki/Singleton_pattern