设为首页 加入收藏

TOP

17.3.3 序列化元素类(3)
2013-10-07 16:13:02 来源: 作者: 【 】 浏览:63
Tags:17.3.3 序列化 元素

17.3.3  序列化元素类(3)

首先调用基类Serialize()函数,处理继承的类成员的序列化。存储矢量内容所用的技术与序列化文档列表所用的技术基本相同。首先将容器中的元素数量写入存档,然后再将元素本身写入存档。CPoint类是可序列化的,所以它本身可以负责处理。读取这些点所采用的技术同样很简单。只需要在for循环中将从存档读取的每个对象存储到矢量m_Points中。序列化过程使用CCurve类无参数的构造函数来创建基类对象,因此vector<CPoint>成员在此过程中创建。

需要将Serialize()函数的实现添加到最后一个类CText中:

  1. void CText::Serialize(CArchive& ar)  
  2. {  
  3. CElement::Serialize(ar);                                            // Call the base class function  
  4. if (ar.IsStoring())  
  5. {  
  6. ar << m_String;                                                         // Store the text string  
  7. }  
  8. else  
  9. {  
  10. ar >> m_String;                                                             // Retrieve the text string  
  11. }  
  12. }  

在调用了基类函数以后,利用ar的插入和析取运算符序列化m_String数据成员。尽管CString类不是派生于CObject,但是具有这些重载运算符的CArchive仍然完全支持它。
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇17.3.3 序列化元素类(2) 下一篇17.4 练习序列化

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)