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