我有一个存储类。这个类的成员经常被修改。每次修改成员时,我都想保存类的状态(克隆类实例并保存)。所以我想创建一个新类,它将保存这些状态。
例如:
假设我在文件 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
类是可以在所有类/包中访问的主类。为了尽量减少代码中的变化,我希望 StorageHistory
与Storage
class.StorageHistory
不能是静态的或单例的,因为创建了多个实例Storage
。
问题:
- 无法编译此代码。storage.h 需要在 storagehistory.h 之前编译,反之亦然
- 如果
StorageHistory
不能在Storage
课堂上存储,那么我要保留它吗?谁是这个类的所有者?
需要帮助定义这两个类之间的联系吗?