C++ 将指向自定义对象的指针向量存储到文件

C++ 将指向自定义对象的指针向量存储到文件,c++,boost,boost-serialization,C++,Boost,Boost Serialization,我使用boost示例代码将对象指针向量存储在文件中。 我的向量是: class VOMC{ public: vector<State*> vomc; ... ... private: friend class boost::serialization::access; template<class Archive> void serialize(Archive & ar, const unsigned int version)

我使用boost示例代码将对象指针向量存储在文件中。 我的向量是:

class VOMC{
public:
    vector<State*> vomc;
...
...
private:
    friend class boost::serialization::access;
    template<class Archive>
    void serialize(Archive & ar, const unsigned int version)
    {
        ar & vomc;
    }
}

错误可能是告诉我,我还应该使我的状态对象可序列化(这一点不确定)。此外,我感到困惑,因为存储指针(指向内存的地址)并没有存储实际数据,而实际数据将在程序终止时释放。上述情况是否有解决办法?即使没有boost。

您也需要为
状态
类序列化
方法

数组停止的每个成员都将被序列化。但是请记住,每个成员都是一个指针——那么这到底意味着什么呢?这种序列化的全部目的是允许在另一个地点和时间重建原始数据结构要使用指针完成此操作,仅保存指针的值是不够的,而必须保存指针指向的对象。稍后加载成员时,必须创建新对象,并将新指针加载到类成员中


另外,我认为您应该阅读关于

是的,
状态
必须是可序列化的,并且实际对象将被序列化(“深度”序列化)。请阅读手册:
/usr/local/include/boost/serialization/access.hpp:118:9: error: ‘class State’ has no member named ‘serialize’