C++ で独自の CBGE (コンポーネント ベースのゲーム エンジン) を作成しようとしていますが、この質問に行き詰まっています: オブジェクトが特定のクラスに属しているかどうかを確認するにはどうすればよいですか? またはポインターと同等ですが、ポインターが特定のクラスのオブジェクトを指しているかどうかを確認するにはどうすればよいですか? 例を挙げましょう:
コードのどこかにこれがあります:
//ComponentManager.h
...
std::map<rUUID, std::vector<Component*>> bucket;
...
ここで、rUUID は UUID を表すクラスであり、Component はエンティティが持つことができるすべてのタイプのコンポーネントを表す抽象クラスです。
特定の rUUID の特定のタイプのコンポーネント (PositionComponent など) を取得するにはどうすればよいですか?
また、このタイプの設計が良いか悪いか、もしそうならどのように形成されるべきか教えてもらえますか?