gpt4 book ai didi

c++ - 如何通过复制内存序列化 C++ 中的对象?

转载 作者:太空狗 更新时间:2023-10-29 20:46:23 26 4
gpt4 key购买 nike

在 C++ 中是否可以通过获取对象首地址的指针并递增该指针直到到达对象末尾来序列化对象?

如果可能的话,我怎样才能找到对象的第一个内存地址以及我应该将这些值存储在哪种数据类型中?我如何在另一侧构建对象?

最佳答案

在一些非常严格的情况下(POD 没有指针/引用;序列化管道两端的操作系统、CPU 架构和 C++ 编译器相同),这相对容易做到。

在更一般的情况下,有许多问题使事情复杂化:

  1. 处理具有非平凡构造函数/析构函数的类;
  2. 处理对象中包含的指针/引用;
  3. 指针/引用图中的循环;
  4. 多态性;
  5. 处理虚拟基类;
  6. 字节顺序;
  7. 字段对齐、填充等;
  8. 基本类型的宽度(一个平台上的 int 不一定与另一个平台上的 int 大小相同);
  9. 版本控制,以便可以在不破坏内容的情况下添加新字段。

关于c++ - 如何通过复制内存序列化 C++ 中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8329989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com