Hello again!
Also, ich habe da mal eine Frage bezüglich Polymorphie. Undzwar habe ich drei Klassen:
1.) Entry (Basisklasse mit virtuellen Funktionen)
2.) MovieEntry (Erbt von Entry überschreibt die Funktionen wiederrum virtuell)
3.) SerieEntry (Erbt von MovieEntry überschreibt wiederum die Funktionen)
In jeder dieser Klassen gibt es eine Funktion "Store()", die die Einträge in eine Datei schreibt. Soweit so gut. Wenn ich jetzt jeweils Objekte dieser Klassen erzeuge, wird auch alles astrein in die gewünschten Dateien geschrieben.
Wenn ich nun jedoch versuche den Polymorphismus durch Zeiger zu nutzen, klappt es garnicht mehr....jetzt meine Frage : "Häh?" ^^ Naja, ist vielleicht nicht so aufschlussreich. Am besten zeige ich mal etwas Code :
Naja, der direkte Aufruf der Funktion über den Pointer funktioniert. Wenn ich jedoch versuche über einen Entry-Zeiger die Polymorphie zu nutzen funktioniert dies nicht. Was mache ich nur falsch?!
Ich hoffe ich konnte mein Problem gut genug schildern.
Greetz,
RadaZOng
Also, ich habe da mal eine Frage bezüglich Polymorphie. Undzwar habe ich drei Klassen:
1.) Entry (Basisklasse mit virtuellen Funktionen)
2.) MovieEntry (Erbt von Entry überschreibt die Funktionen wiederrum virtuell)
3.) SerieEntry (Erbt von MovieEntry überschreibt wiederum die Funktionen)
In jeder dieser Klassen gibt es eine Funktion "Store()", die die Einträge in eine Datei schreibt. Soweit so gut. Wenn ich jetzt jeweils Objekte dieser Klassen erzeuge, wird auch alles astrein in die gewünschten Dateien geschrieben.
Wenn ich nun jedoch versuche den Polymorphismus durch Zeiger zu nutzen, klappt es garnicht mehr....jetzt meine Frage : "Häh?" ^^ Naja, ist vielleicht nicht so aufschlussreich. Am besten zeige ich mal etwas Code :
C++:
MovieEntry *test1=new MovieEntry("1","Test","Nur ein doofer Test","5 Sterne","Quatsch");
SerieEntry *test2=new SerieEntry("1","Test","Nur ein doofer Test","5 Sterne","Quatsch","Staffel 1");
Entry *test=test1;
test->Store(); //Funktioniert nicht :(
test1->Store(); //Funktioniert einwandtfrei
delete test1;
delete test2;
Naja, der direkte Aufruf der Funktion über den Pointer funktioniert. Wenn ich jedoch versuche über einen Entry-Zeiger die Polymorphie zu nutzen funktioniert dies nicht. Was mache ich nur falsch?!
Ich hoffe ich konnte mein Problem gut genug schildern.
Greetz,
RadaZOng
Zuletzt bearbeitet von einem Moderator: