串行化中的问题
在<<深入浅出MFC>>这本书中第八章中深入讨论了串行化的问题,里面还讲述了Serialize读文件和写文件的原理.我们知道串行化需要5个步骤,第一要派生与CObject类,第二要加入DECLARE_SERIAL()宏,此宏当中比
DECLARE_DYNCREATE()宏多了 一句friend CArchive& AFXAPI operator>>(CArchive& ar, class_name* &pOb),也就是进行了>>操作符重载,但在前面讲解Serialize读文件和写文件的原理中,我一直没有发现哪处调用了此友元重载函数,因此我很不理解一定要加入这个函数的原因,但书中说是为了动态创建,而我看前面的原理的时候,当在COblist中调用ar>>newData(其中newData为CObject指针)的时候,,因为newData为CObject指针,所以它调用的是CArchive类中的friend CArchive& AFXAPI operator>>(CArchive& ar, CObject* &pOb),而后面的一些代码进行了动态创建,原理的解释中没有一处说要调用friend CArchive& AFXAPI operator>>(CArchive& ar, class_name* &pOb),而他却告诉我是为了动态创建才重载了这个操作符,实在看不懂啊.看过这本书给解释一下啊 .