これが私が一言で言えば得たものです。
ポーション、装備、呪文などが派生するベースアイテムクラスがあり、それらからいくつかのクラスが派生します。注: 一部の派生クラスには、非仮想クラス固有のメンバー関数/データ型があります。
「ランダムな」鎧/武器ジェネレーターも作成しました。
私が持ちたいのは、次のような在庫です。
struct Hero_Inventory
{
std::vector<Spell*> Spell_Inventory;
std::vector<Potion*> Potion_Inventory;
std::vector<Equipment*> Equipment_Inventory;
Hero_Inventory() {}
};
呪文とポーションのコンテナ (インベントリ) を作成するのは非常に簡単です。それらは事前定義されるため。ポリモーフィズムとポインターの使用は問題になりません
私の主な問題は、ランダムに生成された武器/防具 (どちらも Equipment から派生したもの) を保存して使用する (例: 武器クラスの特定のメンバー関数にアクセスする) ことです。
すべての「装備」を 1 つのコンテナにまとめたいと思います。
いくつかの関数ですべての機器を生成しているので、生成プロセスを終了すると、次のようになります。
Equipment * TestArmor = new Armor(/* Bunch of parameters go here */);
その関数が範囲外になるとすぐにそのポインターが失われるため、どうすればよいかわかりません。また、ポインター/参照がなければ、ポリモーフィズムを使用できません。これにより、機器をすべて 1 つのコンテナーに保持できます。
私はこの時点で本当に迷っており、人々が提案できる提案や代替案を探しています。さらにコードが必要な場合は、投稿します。興味のある部分を教えてください。
漠然としていたらすみません、これが私の最初の投稿です。私は通常、自分で物事を理解するのが得意ですが、このことは私を打ち負かしています. 誰かがさらに情報を必要とする場合は、尋ねてください。私はそれを提供しようとします.
前もって感謝します、-ライアン