私はストレージクラスを持っています。このクラスのメンバーは頻繁に変更されます。メンバーが変更されるたびに、クラスの状態を保存したいと思います (クラス インスタンスのクローンを作成して保存します)。したがって、これらの状態を保存する新しいクラスを作成したいと思います。
例えば:
ファイル 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;
};
仮定:
StorageHistory
クラスは Storage クラスに保持する必要があります。その理由は、Storage
クラスがすべてのクラス/パッケージでアクセスできるメイン クラスであるためです。コードの変更を最小限に抑えるために、S をクラスtorageHistory
と結合したいと考えています。Storage
StorageHistory
Storage
の複数のインスタンスが作成されるため、静的またはシングルトンにすることはできません。
問題:
- このコードをコンパイルできません。storagehistory.h の前に storage.h をコンパイルする必要があり、その逆も同様です。
StorageHistory
クラスに保存できない場合は、保存するStorage
必要がありますか? このクラスの所有者は誰ですか?
これら 2 つのクラス間の接続を定義するのに助けが必要ですか?