首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何序列化这个类?

如何序列化这个类?
EN

Stack Overflow用户
提问于 2010-11-16 13:48:28
回答 2查看 469关注 0票数 0

有没有人能帮我在C++中序列化这个简单的类:

代码语言:javascript
运行
AI代码解释
复制
class State {
public:
    int count;
    Point point;
    double angle;
    Point* possible;
    int possibleSize;
    Line line;
    list<Point> route;

    State() {

    }

    ~State() {
        delete[] possible;
    }

};

// --- Structures

// Line structure (ax + by + c = 0)
struct Line {
    int a;
    int b;
    int c;
};

// Point structure
struct Point {
    int x;
    int y;
};

我不能使用任何第三方类或库,我需要将其序列化为字节数组(或字符串)。有人能写出怎么写吗?我只是不知道该怎么开始。

非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2010-11-16 13:52:29

序列化并不神奇。您所需要做的就是编写一个函数,以可预测的方式将类的每个变量成员保存到一个数组中,并编写一个匹配函数来读取这样的数组并设置正确的成员。

如果这不是针对类的,并且允许使用外部库,那么可以考虑查看Boost Serialization库,特别是当您需要序列化许多不同的东西时。

票数 6
EN

Stack Overflow用户

发布于 2010-11-16 14:07:03

首先,弄清楚如何序列化所有的intdoubleThis question对此有一些提示。请注意,doubleint要复杂得多。尽管这个问题及其答案是用C语言编写的,但任何C++序列化都需要使用相同的核心原则。

您的两个成员看起来像可变长度列表。序列化其中一个元素的好方法是序列化元素(possibleSizeroute.size())的数量,然后每次序列化一个元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4194789

复制
相关文章
已解决 java.lang.Exception: No runnable methods 异常
相信大家使用 ​​Junit​​ 来进行编码测试的时候经常出 ​​java.lang.Exception: No runnable methods​​ 异常,这本身不是一个严重的错误但是因为一时的粗心大意,就是找不到问题的所 在。 代码: import org.junit.jupiter.api.Test; import java.io.FileNotFoundException; public class Upload { @Test public void test() throw
陶然同学
2023/03/30
6690
已解决 java.lang.Exception: No runnable methods 异常
【已解决】Xcode代码提示变量为Error Type
我之前使用Masonry布局时候经常需要设置偏移量,但是呢在设置布局哪里设置死数据不方便进行调试更换就想用一个变量。
君赏
2018/09/07
7480
【已解决】Dubbo版本升级引起的循环注册异常
【已解决】The bean ‘dubboConfigConfiguration.Single’ could not be registered. A bean with that name has already been defined and overriding is disabled.异常解决
谙忆
2021/10/26
1.1K0
awk给外部变量赋值
假设将值存在文件t中,文件t内容如下,只有一行:a b c 需要将a、b和c分别赋给外部变量x、y和z,则脚本可写成如下: eval $(awk '{ printf("x=%s\ny=%s\nz=%s",$1,$2,$3); }' ./t) echo $x echo $y echo $z 请注意printf函数中的换行符\n是必须的,起关键作用的是eval命令,它在很多场景有特别的用处。
一见
2018/08/02
4K0
Could not initialize class java.awt.Font(已解决异常)
javaweb项目中有word、execl等文件生成或文件导出时;由于生成文件中存在图像、统计图等元素。在windows上可行,换到linux执行报错。
陈哈哈
2020/07/06
1.4K0
从外部设置传入Go变量
前提:必须在build/run时指定 -ldflags="-X main.a=2.0 -X main.b=1" , 且a,b必须是string的变量,不能是常量, 不能是struct.
sunsky
2020/08/19
1.3K0
c++变量作用域,c++全局变量,c++局部变量
(1).全局变量:在函数外部定义的变量,或者在程序头部定义的变量,可以在程序的全局使用。
高久峰
2023/06/27
1760
【C++】异常
1. 终止程序 ,如 assert ,缺陷:用户难以接受。如发生内存错误,除 0 错误时就会终止程序。
青衫哥
2023/10/17
1990
【C++】异常
C++异常
基于以上问题,C++衍生了一种新的处理错误的方式。异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。
梨_萍
2023/05/14
4310
C++异常
【C++】异常
错误处理机制: 1.终止程序 如:assert 断言终止 ,会直接报告出现错误的位置 (assert只在debug版本生效)
lovevivi
2023/10/17
2100
【C++】异常
C++异常
异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。
有礼貌的灰绅士
2023/06/14
2880
C++异常
【C++】异常
举个最简单的例子:下面的代码中main函数中调用了func,func中调用了Division,在Divison中如果除0抛出了一个string类型的异常对象:
平凡的人1
2023/10/15
1690
【C++】异常
C++:异常
异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。
二肥是只大懒蓝猫
2023/03/30
7110
C++:异常
C++异常
注:实际中C语言基本都是使用返回错误码的方式处理错误,部分情况下使用终止程序处理非常严重的错误
用户9645905
2022/11/30
7140
C++异常
【已解决】Spring容器中找不到ServletWebServerFactory类出现的异常
【已解决】Spring容器中找不到ServletWebServerFactory类出现的异常
谙忆
2021/10/26
17.5K0
C++内部函数与外部函数 | 调用外部Max函数
内部函数是指一个函数只能被本文件中其他函数所调用,在定义内部函数时,在函数名和函数类型的前面加static。
小林C语言
2020/12/01
2.4K0
C++内部函数与外部函数 | 调用外部Max函数
C++ 异常处理
异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。
C语言与CPP编程
2020/12/02
1.1K0
C++ 异常处理
【C++】static 变量详解-变量篇
1.变量的存储区域在全局区,不管变量是在函数体内,class内,还是cpp文件内。
灰子学技术
2020/04/02
1.1K0
C++异常处理
0.如果使用普通的处理方式:ASSERT,return等已经    足够简洁明了,请不要使用异常处理机制.
用户3148059
2018/09/03
1.5K1
C++异常处理
点击加载更多

相似问题

COBOL -移到同名变量(已解决)

10

C++ -未解决的外部错误

10

c++未解决的外部符号?

11

未解决的外部符号。C++

13

C++变量外部声明

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档