在C ++中是否可以通过获取对象的第一个地址的指针来序列化对象并递增此指针直到到达对象的末尾?
如果可能,我如何找到对象的第一个内存地址以及应该在哪个数据类型中存储值?我怎么能在另一边构建对象?
答案 0 :(得分:3)
在一些非常严格的情况下(POD没有指针/引用;相同的操作系统,CPU架构和序列化管道两端的C ++编译器)相对容易做到。
在更一般的情况下,有许多问题使问题复杂化:
int
在一个平台上的大小不一定与另一个平台上的int
相同); 答案 1 :(得分:2)
您描述的过程将创建对象的平面副本。如果该对象本身包含指针或引用,则该方案将会中断。
如果要序列化对象,请使用Boost.Serialization等库。
答案 2 :(得分:0)
有几种序列化格式(XDR,ASN1,JSON,YAML),技术和库(如C ++的s11n)