我知道这是可能的,但我对 C++ 的经验不足限制了我。我想要做的是有一些系统,我可以将 update()
方法添加到某些类,并让程序中的所有更新方法在每一帧都被调用。
Unity3D 用户可能对此很熟悉。但是,当未确定的类中存在未确定数量的方法时,程序如何知道调用每个 Update()
方法。
我想它是一个在整个程序中动态调用函数的系统。
最佳答案
没有魔杖可以为您做到这一点。您需要手动维护您创建的具有此 Update
方法的所有对象的列表,并在需要时遍历该列表,依次对每个对象调用该方法。
此外,您必须满足编译器的要求,然后它才会允许您执行此操作。这意味着如果列表实际上是一个标准容器,例如 std::vector
,它需要是一个指向由其中的 所有 实例共享的某个基类的指针的容器(这是标准方法)。有一些方法可以让您绕过这个限制,但是在诉诸这些方法之前,您应该非常非常清楚自己在做什么。
关于C++调用程序中的所有update()函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11262618/