我想实现我在 C++ 项目的引擎 (Unity3D) 中看到的行为。
以下代码采用 C#(Unity 语言):
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
void Update() {
//Update is called every frame
}
}
由于我无法访问 MonoBehavior 源,我只能猜测 Update() 是一个可以像这样实现的虚函数。
我想在 C++ 中复制相同的行为。有一个循环,main()
一个超级对象将Update()
在该循环中调用它的方法,它的所有子对象都应该继承这个超级对象并有可能实现Update()
和使用它。
我知道这是一个模棱两可的问题,但我到处寻找答案,但没有找到。
这是一个例子:
class Base
{
public:
virtual void Update();
};
class Object: public Base
{
public:
void Update();
};
void main()
{
Base* base;
while(1)
{
base->Update();
}
}
结果应该是应该通过Base调用Object的Update()。我是 100% 上面的代码不起作用,这就是为什么我需要一些想法。