私には問題があります。私はC++でそれにアプローチする方法がわかりません。基底クラスへのポインタとインスタンスの実際の型を決定する方法
私はそれぞれ異なるアクションを実行できる3つのオブジェクトを持っています。これらのオブジェクトは、実行可能なアクションに追加されるアドオンオブジェクトをサポートします。追加されるオブジェクトに応じて、アドオンは異なるアクションを有効にします。
これをC++でどのようにモデル化できますか?
私はクラスA、B、C、AddOn1、AddOn2を持ちたいと思っています。
問題がある:
どうAddOn1/2は、(他の言葉でそれがどのように)のタイプは、それが添付されているオブジェクト何(知っている)、それに含まれるどのようなアクションを実行時に知っているのですか?
クラスA、B、Cはどのようなタイプのアドオンを持っているのですか?
私は
クラスA { ... アドオン*アドオンのような何かをしたいと思います。 };
そして、そのポインタを使ってアドオンを操作してください。しかし、その関数を使用できるようにするには、そのクラスにキャストする必要があります。
どのように私はhasAddOn1とhasAddOn2のようなブール値フィールドを持ち、これらの設定に基づいてキャストすることができます。 AddOn基本クラスでは、その親へのポインタを持ち、親に質問してAddOnの型を調べることができました。
これは意味がありますか?