小编eal*_*ves的帖子

使用boost序列化抽象类时出错

我正在尝试序列化我的数据结构,以便将它们写入tcp套接字.

到目前为止,我发现我的问题是序列化.我甚至试过用

BOOST_SERIALIZATION_ASSUME_ABSTRACT(T)
Run Code Online (Sandbox Code Playgroud)

但我找不到任何与我的程序类似的工作示例以及如何正确实现它.

以下是我访问过的一些链接:

我的数据结构比这个更复杂,但我们假设我有以下结构

Coordinate.h

#include <boost\archive\text_iarchive.hpp>
#include <boost\archive\text_oarchive.hpp>

class Coordinate {
public:
    Coordinate() {}
    Coordinate(int c) : c(c) {}
    int get(void) { return c; }
    std::string toString(void);
private:
    int c;
    friend class boost::serialization::access;
    template<typename Archive>
    void serialize(Archive &ar, const unsigned int version) {
        ar & this->c;
    }
};
Run Code Online (Sandbox Code Playgroud)

Move.h

class Coordinate;

#include "Coordinate.h"

#include <boost\archive\text_iarchive.hpp>
#include <boost\archive\text_oarchive.hpp>

class Move {
public:
    Move() {}
    ~Move() {}
    Coordinate* getCoordinate(void) {return this->destination; }
    virtual bool isJump(void) = …
Run Code Online (Sandbox Code Playgroud)

c++ abstract-class visual-studio-2010 boost-serialization

5
推荐指数
1
解决办法
3750
查看次数