📄 untitled-22.txt
字号:
化过程就完了。这时除了显示一个出错消息以外无事可做,如果您自己不处理异常事件的
话,MFC就会代您做。但是如果VERSIONABLE.SCHEMA标志存在,MFC就会跳过
AfxThrowA。hiveException,将模式编号保存在应用程序通过调用Getobjectschema可以检索到
的地方。这就说明了为什么 VERSIONABLE.SCHEMA和 Getobjectschema是对可串行化类进
行成功版本编号的关键。
6.2.5串行化CObject
在结束本章之前,我对有关串行化 C0bject还有些建议。 MFC为 C0bject指针重载了
CArchive的插人和提取运算符,但对 C0bject没有重载。这就意味着下面的语句有效:
come。ppine=new Cwine(Ceoint(O,O),Ctoint(IOO,SO》;
df<<PLlfl6;
而以下语句无效:
Cnine line(CPoint(0, O), CPoint(IOO, SO》;
ar<< lrne;
也就是说,C0bjects可以用指针而不能用值串行化。通常这并不是问题,但如果您要编写可
串行化的类而该类又使用其他可串行化的类作为内部数据成员时,串行化这些数据成员就
出现麻烦了。
通过值而不是指针串行化C0bject的一种方法是按下列程序代码进行串行化和并行化:
// Serialize.
CLine line(CPoint(O, O), CPoint(100, 50》;
&f<<&lifl6;
// Deserlallze.
CLine针pLine;
dl>>PLlflg;
CL工rsl主flfl一天pL主flfl;// ASSSmSS cL土SS hSS S COpy C0flstSSCtOO.
delete pLinei
但是更通用的方法是直接调用其他类的Serialize函数,如下:
// Serialize.
CLine line(CPoint(O, O), CPoint(100, 50》;
l。ne.Serial。ie(ar);
// Deeerialize.
CLiff6 liflg;
line.Ser。al。ie(ar);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -