是否可以通过一个流读取调用来初始化多个数据成员?

问题描述

我正在为类序列化实现工作,现在我想知道是否可以将二进制缓冲区从打开的序列化文件流式传输到类中的内存地址,并保存计算大小并完成整个数据成员块,以及我绝对需要数据成员地址是连续的(端到端)。我在这个问题中看到了关于类内存布局的答案memory layout C++ objects

它说具有相同访问控制(第 11 条)的(非联合)类的非静态数据成员被分配,以便后面的成员在类对象中具有更高的地址。但没有指定它们是否是连续的。

数据成员之间的类内的填充是否也依赖于编译器?如果是这样,指定某个填充大小是否是实现此目的的好习惯?

毕竟像这样进行内存初始化是一个方法吗?由于一个类中可能有这么多数据成员,因此减少流读取调用次数是否好?

注意:我可以拆分指针、字符串、stls 并记录它们的大小,你可以认为这个问题只讨论基本类型。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)