VC中的结构体和枚举类型序列化

通常除了从CObject继承的类重写Serialize外,我们经常还遇到对自定义Struct, enum等的序列化,这里就说说后两个的可以方法:
一、结构体:
       struct   A
                 {  
                     int      a ;  
                     float   b;  
                  }structA;
       1    最简单却较繁琐的方法:
              ar<<stuctA.a<<stuctA.b
        2   为结构体添加 重载符:

              struct   A{  
                  int   a   ;  
                  float   b;  
                  friend   CArchive   &   operator   <<(CArchive   &   arc,A   &data);  
                  friend   CArchive   &   operator   >>(CArchive   &   arc,A   &data);  
              }  
   
             CArchive   &   operator   <<(CArchive   &   arc,A   &data)  
             {  
                 arc<<a<<b;  
                 return   arc;  
              }  
             CArchive   &   operator   >>(CArchive   &   arc,A   &data)  
             {  
                 arc>>a>>b  
                 return   arc;  
             }  
  二、枚举类型:
           enum   Shape   {   rectangle,   roundRectangle,   ellipse,line,circle,picture,text,polygon   };      
           Shape   m_nShape;  
           ar   <<   (WORD)   m_nShape;     
           WORD   wTemp1;  
           ar   >>   wTemp1;   m_nShape   =   (Shape)wTemp1;  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值