首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

强大的CArchive,别告诉小弟我你只会用它处理文本

2012-09-10 
强大的CArchive,别告诉我你只会用它处理文本不想多说,程序里已经写明。请各位同学务必看仔细其中差异。:) #i

强大的CArchive,别告诉我你只会用它处理文本

     不想多说,程序里已经写明。请各位同学务必看仔细其中差异。:)

 

#include <afx.h>#include <iostream>class CTest : public CObject{public:CTest():m_a(100){Set();}public:void Set(){   m_a = 888;} void Set2(){  m_a = 777;}void Get()const{std::cout<<m_a<<std::endl;}public:virtual void Serialize(CArchive& ar){}private:int m_a;protected :DECLARE_SERIAL(CTest)};class CTest2 : public CObject{public:CTest*   m_obj;public:CTest2(){   m_obj = new CTest;}~CTest2(){   Release();}void Release(){ if(m_obj)   {     delete m_obj; m_obj = NULL;   }}virtual void Serialize(CArchive& ar);protected:DECLARE_SERIAL(CTest2)};IMPLEMENT_SERIAL(CTest, CObject, 23)IMPLEMENT_SERIAL(CTest2, CObject, 23)void CTest2 :: Serialize(CArchive& ar){CObject::Serialize(ar);if(ar.IsStoring()){   m_obj->Set2();// pay attention to here   ar<< m_obj;}else{   Release();   ar>>m_obj;   m_obj->Get();}return;}int main(){CTest2 obj;    CFile iof("template.cplus", CFile::modeWrite | CFile::modeCreate );         CArchive arch(&iof, CArchive::store);obj.Serialize(arch);arch.Close();    iof.Close();    CFile oof("template.cplus", CFile::modeRead );     CArchive arch2(&oof, CArchive::load);    obj.Serialize(arch2);arch2.Close();oof.Close();    return 0;}


 

热点排行