000
15.09.2004, 12:15 Uhr
~Michael
Gast
|
Hi, also irgend wie speichert CList nicht die Objekte die drin sind Weiß wer warum?
C++: |
// Modifikatoren typedef class Modifier : public CObject { DECLARE_SERIAL (Modifier) public: CString m_bezeichnung; int m_mod_wert; CString m_mod_bechreibung; public: void Serialize(CArchive &ar); }mod_t;
//------------------------------------------------------------------------------------
// Attribut typedef class Attribut : public CObject { DECLARE_SERIAL (Attribut) public: int m_attributs_wert; int m_attributs_mod; int m_attributs_tmp_wert; int m_attributs_tmp_mod; CList<mod_t*,mod_t*>* m_mods; public: void Serialize(CArchive &ar); }attribut_t;
|
C++: |
void Attribut::Serialize(CArchive &ar) { CObject::Serialize(ar);
if(ar.IsStoring()) { ar << m_attributs_mod << m_attributs_tmp_mod << m_attributs_tmp_wert << m_attributs_wert; m_mods->Serialize(ar); } else { ar >> m_attributs_mod >> m_attributs_tmp_mod >> m_attributs_tmp_wert >> m_attributs_wert; m_mods->Serialize(ar); } }
|
C++: |
// test.h class Test:public CObject { DECLARE_SERIAL (Test) public: void Serialize(CArchive &ar); public: attribut_t* m_attribute; }
|
C++: |
// test.cpp IMPLEMENT_SERIAL (Test, CObject, 1)
void Test::Serialize(CArchive &ar) { CObject::Serialize(ar);
if(ar.IsStoring()) { ... for(int i=0;i<6;i++) { m_attribute[i].Serialize(ar); }
} else { ... for(int i=0;i<6;i++) { m_attribute[i].Serialize(ar); } } }
|
Also das ist der Code dazu. In der Klasse Test werden auch normale Membervariabeln gespeichert und bei denen Funtkioniert das auch. Nur nicht die Objekte in der Lsite. Er merkt sich wieviele in der Liste drin sidn, aber schaut man sich nach dem Laden die Objekte an sind alle Variablen mit dem default Wert initialisiert
??? Help ???
mfg Michael |