serialize串行化(serialize可以串行化数组么)
本文目录
serialize可以串行化数组么
这个问题要界定编程语言和编程环境。对PHP来说,数组可以序列化(串行化),没有问题。对C++来说,数组不是对象,不能直接进行序列化操作,如果有序列化对象(如ar),可以逐一序列化数组。
数据库串行化的实现方法
需要如下步骤即可:(1) 从CObject类派生或者从CObject类派生的某个派生类(2) 重写Serialize成员函数,把类的数据成员写入文件。(3) 在类声明中使“DECLARE_SERIAL”宏。(4) 定义不带参数的构造函数。(5) 在类的实现文件中使用。“IMPLEMENT_SERIAL”宏
如何串行化一个类
我们来一起学习学习一个类能被串行化必须具备的条件是 一下5个(1) 这个类要从CObject类派生(2) 覆盖父类的Serialize函数(重载)(3) 使用 宏DECLARE_SERIAL(类名) 将该声明放入该类的类体头文件中(4) 构造一个该类的不带参数的构造函数(5) 使用宏IMPLEMENT_SERIAL(类名, CObject, 版本号)声明在cpp文件中,一般情况下 版本号设置为 1 并放到cpp的函数体前具备上边的条件后就该类就可以被串行化了说起串行化其实就是将一个类的工作状态的关键的数据保存到文件中 , 等再次打开该文件的时候可以再现原来的工作状态的一个方法版本号必要要在声明中和读取过程中保持一致文档类最终保存对象实际上是在调用该类的 Serialize函数来完成在这里我们要学会使用 CObjectArray类它本身就可以支持串行化在单文档和多文档中,我们将CObjectArray类的定义放到CDocument类中完成当用完CObjectArray对象后我们一般可以使用 RemoveAll函数来删除所有元素示例:类中的串行化函数void CGraph::Serialize(CArchive& ar){if(ar.IsStoring()){ar《《m_nDrawType《《m_ptOrigin《《m_ptEnd;}else{arm_nDrawTypem_ptOriginm_ptEnd;}}在文档类中添加一个成员变量public:CObArray m_obArray;文档类的串行化函数void CGraphicDoc::Serialize(CArchive& ar){POSITION pos=GetFirstViewPosition();CGraphicView *pView=(CGraphicView*)GetNextView(pos);if (ar.IsStoring()){}else{ }m_obArray.Serialize(ar);}这样你就可以通过CObArray 类的串行化来实现对类的"存储"了,就可以再现当时保存该类的状态了不过你要在你的 OnDraw函数中重新绘制你保存的数据不是很难的吧哈哈 又长见识了吧
更多文章:
游戏法老王与埃及艳后,刚开始玩,它怎么总提示要建棚子和杂耍学校等娱乐设施呀,要建多少个才能过关?法老王的游戏攻略
2024年7月1日 04:33
xvideos video downloader(xvideos账号密码大全)
2024年7月23日 23:55
德玛西亚之翼出装(德玛西亚之翼技能主什么副什么该怎么出装前期强势么)
2024年6月12日 04:33
海外短信验证码平台(注册国外社交账户需要的国外手机号短信验证码接收平台收集)
2024年6月29日 10:21
火箭惨败马刺替补史密斯(94和95年火箭夺冠是的主力阵容和所有替补都有谁)
2024年7月9日 20:45
同花顺网上行情交易软件下载(如何手机安装华融证券同花顺交当软件)
2024年4月11日 02:05