深入浅出MFC第2版(PDF格式)-第41部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
#0047 CObject* pOb;
#0048 while(1)
#0049 {
#0050 if ((pClassRef = CRuntimeClass::Load()) == NULL)
#0051 break;
#0052
#0053 pOb = pClassRef…》CreateObject();
#0054 if (pOb != NULL)
#0055 pOb…》SayHello();
#0056 }
#0057 }
Persistence (永续生存)机制
对象导向有一个术语:Persistence ,意思就是把对象永久保留下来。Power 一关,啥都没
有,对象又如何能够永续存留?
当然是写到文件去!
把资料写到文件,很简单。在Document/View 架构中,资料都放在一份document (文
件)里头,我们只要把其中的成员变量依续写进文件即可。成员变量很可能是个对象,
而面对对象,我们首先应该记载其类别名称,然后才是对象中的资料。
读档就有点麻烦了。当程序从文件中读到一个类别名称,它如何实现(instantiate)一个
对象?呵,这不就是动态生成的技术吗?我们在前一章已经解决掉了。
MFC 有一套Serialize 机制,目的在于把档名的选择、文件的开关、缓冲区的建立、资
。。。
料的读写、萃取运算子(》》 )和嵌入运算子( m_sizeDoc;
m_graphList。Serialize(ar);
}
void CObList::Serialize(CArchive& ar)
{
if (ar。IsStoring()) {
164
…………………………………………………………Page 227……………………………………………………………
第3章 MFC 六大關鍵技術之模擬
ar pNext)
ar data;
}
else {
WORD nNewCount;
ar 》》 nNewCount;
while (nNewCount……) {
CObject* newD