Pure Virtual Function Called???
-
Hallo zusammen!
Ich erhalte bei der Ausführung eines Codestücks mit prinzipiell folgender Struktur die Meldung:
"Pure Virtual Function Called"
(meine IDE: BCB6 -> hab ich auch schon im entsprechenden Forum gepostet)Der Code (natürlich abstrakt gehalten - wurde lediglich zu Testzwecken implementiert):
int main() { TMyClass1 obj; obj.add(TMyClass2(&obj)); return(0); } //'add' führt zu folgendem Code: void TMyClass1::add(TMyClass2 obj) { irgendein_vector.push_back(obj); }
Besonders interessant an der genannten Problemstellung ist, dass unmittelbar vor dem Auftreten des Fehlers die Methode 'add' trotzdem komplett durchlaufen wird und der genannte Fehler unabhängig von Methodenbezeichnung und gekapseltem Code auftritt.
Ich könnte also auch folgendes schreiben:void TMyClass1::bloedsinn(TMyClass2 obj) { <unwichtig> }
Der Fehler tritt trotzdem unmittelbar nach Beendigung der Methode 'add' bzw. 'bloedsinn()' auf!
Ebenso interessant ist, dass ich das Problem mit einer Abwandlung der Parameterliste von 'bloedsinn()' lösen kann.
Also:void TMyClass1::bloedsinn(TMyClass2& obj) { <unwichtig> }
So verschwindet der genannte Fehler!
Es scheint also irgendwie damit zu tun zu haben, dass ich vorgebe, eine Kopie einer Instanz der Klasse 'TMyClass2' zu übergeben. Nur die betroffene Klasse ist nicht abstrakt. Der Compiler müsste dann ja auch motzen!Weiss jemand Rat?
Danke!
Grüße,
TS++
-
Sorry Jansen!
War etwas schneller!;)
-
Wohl kaum. 19:22 scheint doch deutlich früher als 19:27.
Also, bitte schliessen/löschen, hier geht's weiter.