CObArray::Serialize mit 2 parameter
-
Hey,
ich habe eine eigenen Datenklasse die in einem CObArray gespeichert wird. Meine Datenklasse besitzt demnach eine Serialize Funktion. Jetzt würde ich dieser gerne außer dem CArchiv auch noch einen Integer für die Version des Datenformats übergeben.
void CTimeData::Serialize(CArchive &ar, int iVersion) { if (ar.IsStoring()) { ar<<... } else { switch (iVersion) { case 0: ar>>.... break; case 1: ar>>... break; } } }Jetzt habe ich aber das Problem, das CObArray::Serialize nur einen Parameter übernimmt. Deshalb habe ich eine von CObArray abgeleitete Klasse erstellt und dort Serialize mit 2 Parametern überschrieben. Das Problem ist nur, das innerhalb von CObArray eine CObject::Serialize(ar) aufgerufen wird, der nur einen Paramter besitzt. Wie kann ich diese Funktion überschreiben. Ich habe es so probiert (klappt aber nicht, Fehler: "Aufruf einer nicht statischen Memberfunktion...")
void CMyObArray::Serialize(CArchive& ar, int iVersion) { ASSERT_VALID(this); CTimeData::Serialize(ar, iVersion); // <---- Hier kommt die Fehlermeldung if (ar.IsStoring()) { ar.WriteCount(m_nSize); for (INT_PTR i = 0; i < m_nSize; i++) ar << m_pData[i]; } else { DWORD_PTR nOldSize = ar.ReadCount(); SetSize(nOldSize); for (INT_PTR i = 0; i < m_nSize; i++) ar >> m_pData[i]; } }