📄 untitled-14.txt
字号:
2.在类的说明中写人MFC的DECLARE_SERIAL宏。DECLARE.SERIAL只接收一个
参数:类名。
3.重载基本类的Serialize函数,并串行化派生类的数据成员。
4.如果派生类没有默认的构造函数(该函数没有参数),则添加一个。因为对象并行
化时,MFC要用默认构造函数在浮动标签上创建对象,并用从档案取回的值设置对
象数据成员的初始值,所以这一步是非常必要的。
5.在类的实现中写人MFC的IMPLEMENTSERIAL宏。IMPLEMENTSERIAL宏接受
三个参数:类名,基本类名和模式号。“模式号”是一个整型值,等于版本号。只要
修改了类的串行化数据格式,模式号也要随之改变。至于如何分配可串行化类的
版本号将在下节介绍。
假定您编写了一个简单的类来代表线,名为Cline。该类有两个CPoint数据成员,它们
存储着线的两个端点,并且您想添加串行化支持。最初,类的声明是这样的:
CldSS CLiff6
《
protected:
CPoint ltl--ptFrom;
CPo土nt ITI-mptTo;
publiC:
Ct。ne(CPo。nt fro。, CPo。nt to) {。ptsrom= from;。ptro= to; }
8;
做到使该类可串行化非常容易。下面是添加串行化支持后的程序段:
Ocl。ss CL。ne: PPbliC CObjbCt胸前…魏体¥
Z
@。DECLARE.SERIAL(CLine)
protected:
CPo主nt m-ptFrom;
CPointLptTO;
publiC:
(oh*LI*e(J(B//***u工**d!
CLine(CPoint from, CPoint to) Z。ptFrom= from;。PtTo= to; Z
⑤—vo。d Ser。al。ie(CArch。ye& ar);
2;
The Serialize function looks like this:
void CLine:: Serialize(CArchive& ar)
Z
C0bject::Ser。allze(ar);
。f(ar.Isstoring())
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -