首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于C++序列化解决思路

2012-04-20 
关于C++序列化小弟刚接触C++,诚心求教C++序列化的问题,不知道C++在序列化方面都有什么样的类库,都是怎么用

关于C++序列化
小弟刚接触C++,诚心求教C++序列化的问题,不知道C++在序列化方面都有什么样的类库,都是怎么用的?

比如我有这么一个类,我该如何序列化?

struct Node
{
  int index;
  std::vector<int> num;
}
class Data
{
public:
int id;
std::string name
std::vector<Node> list;
public:
CatalogNode(void);
~CatalogNode(void);
};

[解决办法]
什么意思
[解决办法]

C/C++ code
Node n;n.index = 0;n.num.push_back(1);n.num.push_back(2);...Date d;d.list.push_back(n);n.index=1;n.num.clear();n.num.push_back(10);n.num.push_back(20);......
[解决办法]
是这个意思么?
[解决办法]
引用楼主 liujia2008 的帖子:
小弟刚接触C++,诚心求教C++序列化的问题,不知道C++在序列化方面都有什么样的类库,都是怎么用的?

比如我有这么一个类,我该如何序列化?

struct Node
{
int index;
std::vector <int> num;
}
class Data
{
public:
int id;
std::string name
std::vector <Node> list;
public:
CatalogNode(void);
~CatalogNode(void);
};

[解决办法]
boost

[解决办法]
实现序列化的类必须满足下列条件:
1. 该类需要从CObject类派生(可以是间接派生);
2. 在类中中进行DECLARE_SERIAL宏定义;
3. 类存在有缺省的构造函数;
4. 类中实现了Serialize()函数,并且在其中调用基类的序列化函数;
5. 使用IMPLEMENT_SERIAL宏指明类名及版本号;
C/C++ code
.hstruct Node {       int index;       std::vector <int> num; } class CatalogNode : public CObject{     DECLARE_SERIAL(Data)public:     int id;     std::string name     std::vector <Node> list; public:     CatalogNode(void);     ~CatalogNode(void);     void Serialize(CArchive&ar); // 序列化函数};.cppIMPLEMENT_SERIAL(CatalogNode ,CObject,0)void CatalogNode ::Serialize(CArchive &ar){    if(ar.IsStoring())//数据写操作    {        ar<<id;        ar<<name ;     }     else   //数据读操作    {       ar>>id;       ar>>name ;    }    CObject:: Serialize(ar);} 

热点排行