もちろんできますが、そのようにデザインするのが合理的かどうか疑問に思っています。
私はブレイクアウトクローンを作成していて、クラスの設計を行っていました。継承する必要はありませんが、C ++で学んだことを適用するために継承を使用したいと思いました。私はクラスの設計について考えていて、次のようなものを思いつきました:
GameObject->基本クラス(xオフセットとyオフセットのようなデータメンバー、およびSDL_Surface *のベクターで構成されます*
MovableObject:> GameObject->抽象クラス+ GameObjectの派生クラス(1つのメソッドvoid move()= 0;)
NonMovableObject:GameObject->空のクラス...コンストラクタやデストラクタ以外のメソッドやデータメンバーはありません(少なくとも今のところは?)
その後、TilesetのようなNonMovableObjectからクラスを派生することを計画していました:NonMovableObject。「空の」抽象クラスまたは単に空のクラスが頻繁に使用されるかどうか疑問に思っていました...私はこれを行っている方法で、分類のためにクラスNonMovableObjectを作成していることに気付きました。
私はブレイクアウトクローンを作成するためだけに考えすぎていることを知っていますが、私の焦点はゲームではなく、継承の使用とある種のゲームフレームワークの設計にあります。
MovableObject
もNonMovableObject
継承できないことは事実ですが、どちらにも場所があります。そのため、それらは両方とも、たとえば、オブジェクトが動くかどうかに関係なく、オブジェクトにモンスターの狙いを向けたいコードによって消費される必要があります。