【发布时间】:2016-08-14 21:48:48
【问题描述】:
我正在尝试通过命名管道发送一个对象,但是我不明白如何序列化我的对象:
class Order {
public:
void addFile(std::string const &file);
void setType(Parser::Information const &type);
std::list<std::string> getFileList() const;
Parser::Information getType() const;
void clear();
private:
std::vector<std::string> fileList;
Parser::Information type;
};
我已经设法让我的命名管道使用基本数据类型,但是我不明白如何发送和接收完整对象(不使用 boost 序列化)
我试图将对象的数据放在一个结构中,但我没有设法通过命名管道发送它......可能是因为向量
有人可以和我分享他的知识吗
【问题讨论】:
-
在 C++ 中,结构与类非常相似。
-
std::vector 和 std::list 和 std::string 都有指针。换句话说,要传输其中任何一个的内容,您必须“消除”指针,并且只发送数据。有很多方法可以做到。研究术语“持久存储”。
-
您需要为此进行序列化。您需要编写代码或使用现有框架来(反)序列化(反)字节流中的对象。
-
也许与 std::bitset ? ;)
标签: c++ oop object serialization named-pipes