1 つの基本クラスから派生した複数のクラスがあると想像してください。すべてのクラスはお互いを知る必要がありますが、これはオプションではありません。これは、私が取り組んでいる少し大きなプロジェクトだからです。inventory - item
簡単にするために、作成されたリレーションを例として使用します。
class Inventory : public Base {
std::vector<Base*> m_items; // These CAN be Items
};
class Item : public Base {
Base* m_parent; // This CAN be Inventory
};
これらの 2 つのクラスは明らかに異なるファイルにあり、基本クラスにはないメソッドを相互に使用する必要があります。MUST ではなく、CAN という単語に注意してください。これは、m_parent と m_items が Base から派生した任意のクラスのオブジェクトになる可能性があることを意味します。したがって、Item の親は または のいずれInventory
かになりますTreasureChest
。
tl;dr 2 つのクラスは、互いの型を知らなくても、互いに通信できなければなりません。そのような活動を実施する最善の方法は何ですか?