エンジン(Unity3D)で見た動作をC++プロジェクトに実装したいと思います。
次のコードは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();
}
}
その結果、ObjectのUpdate()はBaseを介して呼び出されるはずです。私は100%上記のコードが機能しないので、いくつかのアイデアが必要です。