4

私はストレージクラスを持っています。このクラスのメンバーは頻繁に変更されます。メンバーが変更されるたびに、クラスの状態を保存したいと思います (クラス インスタンスのクローンを作成して保存します)。したがって、これらの状態を保存する新しいクラスを作成したいと思います。

例えば:

ファイル storage.h に Storage クラスがあるとします。

class Storage 
{
 public:
   Int m_cnt;
   <lots of other members...>

   StorageHistory m_his;
};

ファイル storagehistory.h の StorageHistory クラス

class StorageHistory 
{
 public:
   std::vector<Storage> m_history_vec;
};

仮定:

  1. StorageHistoryクラスは Storage クラスに保持する必要があります。その理由は、Storageクラスがすべてのクラス/パッケージでアクセスできるメイン クラスであるためです。コードの変更を最小限に抑えるために、S をクラスtorageHistoryと結合したいと考えています。Storage
  2. StorageHistoryStorageの複数のインスタンスが作成されるため、静的またはシングルトンにすることはできません。

問題:

  1. このコードをコンパイルできません。storagehistory.h の前に storage.h をコンパイルする必要があり、その逆も同様です。
  2. StorageHistoryクラスに保存できない場合は、保存するStorage必要がありますか? このクラスの所有者は誰ですか?

これら 2 つのクラス間の接続を定義するのに助けが必要ですか?

4

4 に答える 4