当前位置:首页 科普知识 serialize

serialize

发布时间:2023-09-14 14:25:42

serialize是指从档案文件中读取该对象或向档案文件中写入该对象的函数。

serialize介绍

serialize是指从档案文件中读取该对象或向档案文件中写入该对象的函数。

serialize

serialize函数原型

CObject::Serialize

virtual void Serialize(CArchive&ar);

throw(CMemoryException);

throw(CArchiveException);

throw(CFileException);

参数:

ar 被串行化的CArchive对象。

serialize函数说明

从档案文件中读取该对象或向档案文件中写入该对象。

必须为希望串行化的每个类覆盖Serialize。被覆盖的Serialize首先必须调用基类的Serialize函数。

在类的声明中必须使用DECLARE_SERIAL宏,并且在类的执行过程中也必须使用IMPLEMENT_SERIAL宏。

使用CArchive::IsLoading或CArchive::IsStoring函数,用于决定是否装载或存储了档案文件。

通过CArchive::ReadObject和CArchive::WriteObject来调用Serialize函数。这些函数与CArchive插入操作符()相关联。

serialize

如果要了解有关串行化的例子,请参阅联机文档“Visual C++程序员指南” 中的“串行化(对象永久化)”。

serialize序列化

1. 该类需要从CObject类派生(可以是间接派生);

2. 在类中进行DECLARE_SERIAL宏定义;

3. 类存在有缺省的构造函数;

4. 类中实现了Serialize()函数,并且在其中调用基类的序列化函数;

5. 使用IMPLEMENT_SERIAL宏指明类名及版本号;

serialize作用局限

序列化简化了对象的保存和载入,为对象提供了持久性。但是,序列化本身仍具有一定的局限性。由于序列化一次从文件中载入所有对象,因此,它不适合于大文件器和数据库。对于数据库和大文件器,它们每次只是从文件中读入一部分。此时,就不应该采用文档的序列化机制来直接读取和保存文件了。另外,使用外部文件格式(预先定义的文件格式而不是本应用程序定义的文件格式)的程序一般也不使用文档的序列化。

serialize示例

请参阅ObList::CObList,了解所有CObject示例中使用的CAge类。

// example for CObject::Serialize

void CFileSerializeDoc::Serialize(CArchive& ar){

if (ar.IsStoring()){

ar << m_sizeDoc; //m_sizeDoc信息序列化到ar

}else{

serialize

ar >> m_sizeDoc; //ar序列化到m_sizeDoc

}

m_strokeList.Serialize(ar);//序列化m_strokeList

}

温馨提示:
本文【serialize】由作者 爱百科 转载提供。 该文观点仅代表作者本人, 自学教育网 信息发布平台,仅提供信息存储空间服务, 若存在侵权问题,请及时联系管理员或作者进行删除。
(c)2008-2025 自学教育网 All Rights Reserved 汕头市灵创科技有限公司
粤ICP备2024240640号-6