Problem mit dynamic_cast !!!
-
folgender code:
struct m_SNode{ // Match Parameter long lAhead; long lBehind; long lNextPos; // Zeit bis zum nächsten block ende!! //Allgemein int iModul; int iIndex; // Index der Prozesse/Handling das wor diesem ist!! SBlock oBlock; }; struct m_SNodeHandling : public m_SNode{ // Handlings Positionen, Get/Set Zeiten int iStaPos; // StartPosition! int iScr; // Quell Modul int iDest; // Ziel Modul int iEndPos; // Endanfahrposition long lSetTime; // Zeit an dem der Handler die Charge im DestModul palziert hat long lGetTime; // Zeit an dem der Handler die Charge im ScrModul entwedent hat }; struct m_SNodeProcess : public m_SNode{ //Process long lProcTime; // Processzeit!! long lOverProc; // Erlaubte Overprozessierung! long lCurrentOverProc; // Aktuelle Overprozessierung! };Error in folgender zeile:
m_SNode *p=.... if(dynamic_cast<m_SNodeProcess*>(p)){.....}error C2683: dynamic_cast: 'CProcessParser::m_SNode' ist kein polymorpher Typ
......: Siehe Deklaration von 'CProcessParser::m_SNode'
-
Verpass deiner Klasse ne virtuelle Methode (am besten Destruktor).
-
hmm.. ok.. und wieso muss ich das machen?
-
Damit eine VTable angelegt wird.