设为首页 加入收藏

TOP

17.1 了解序列化
2013-10-07 16:13:32 来源: 作者: 【 】 浏览:63
Tags:17.1 了解 序列化

第17章 存储和打印文档

本章要点

序列化的工作方式

如何使类的对象可序列化

CArchive对象在序列化中的作用

如何在自己的类中实现序列化

如何在Sketcher应用程序中实现序列化

打印如何使用MFC

支持打印的视图类函数

CPrintInfo对象包含的内容及其在打印过程中的应用

如何在Sketcher应用程序中实现多页打印

利用目前在Sketcher程序中所完成的工作,可以创建一个相当全面、具有各种比例视图的文档,但是因为现在没有办法保存文档,所以信息是临时的。本章将解决这个问题,分析如何在磁盘上存储文档,以及如何把文档输出到打印机上。

17.1  了解序列化

在基于MFC的程序中,文档并非一个简单的实体--它可以是非常复杂的类对象。它通常包含各种对象,而这些对象又都可能包含其他对象,这些对象仍然又都可能包含其他对象……这种结构可能延续很多层次。

虽然希望能够把文档保存在文件中,但是将类对象写入文件意味着多少会有一些问题,因为类对象不同于整数或字符串这样的基本数据项。基本数据项由已知数目的字节组成,所以将它们写入文件只要求写入适当数目的字节。因此,如果已知一个int型的值写入了文件,那么在恢复它时,只需要读取适当数目的字节即可。

将对象写入文件则是另外一回事。即使是连续地写入一个对象的所有数据成员,这也不足以恢复原始对象。类对象包含函数成员以及数据成员,所有成员,包括数据成员和函数成员,都有访问说明符;因此,要在外部文件中记录对象,写入文件的信息必须包含所有类结构的完整规范。读取过程也必须非常智能,能够根据文件中的数据完整地组合成原始对象。MFC支持一种称为序列化的机制,它能够以最少的时间和精力,帮助实现类对象的输入和输出操作。

序列化的基本思想是任何可序列化的类都必须负责存储和检索自己。这意味着,要使类成为可序列化的--就Sketcher应用程序而言,这包括CElement类和派生于它的形状类--它们就必须能够将自己写入文件。这意味着要使一个类成为可序列化的,用于声明该类数据成员的所有类类型也必须是可序列化的。
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇14.8 本章主要内容 下一篇17.2.1 文档类定义中的序列化

评论

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

·数据库:推荐几款 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)