"Abgeleitete" Klasse in "Eltern-Variable": Überschriebene Funktionen werden nicht aufgerufen...

  • Hallo,


    um ein Programm möglichst elegant zu erweitern, dachte ich mir, ich könnte das schön mit den Mitteln der Objektorientierung erledigen.


    Also von einer Klasse eine eigene abgeleitet und die neuen Funktionen und Änderungen da rein.


    Beispielsweise "alte Klasse" heißt "alteKlasse", meine neue heißt "neueKlasse".


    Abgeleitet habe ich dann mit "class neueKlasse: public alteKlasse". Dort dann alles überschrieben was ich neu machen will.


    Ich will nun, abhängig von äußeren Bedingungen, im eigentlichen Code entweder die alte Klasse wie gewohnt nutzen oder meine neue, mit den Überschreibungen, ansteuern. Als Variablentyp habe ich im Hautprogramm also nach wie vor "alteKlasse* klasse". Dieser Variable weise ich nun entweder eine neue "alte" oder eine neue "neue" Klasse zu.


    Problem: Es scheint mir so zu sein, dass auch dann, wenn ich eine "neueKlasse" erzeuge, dennoch die alten Funktionen der Elternklasse angesteuert werden. Ist das so normal? Wie umgeht man das?

  • Ja, virtual müssen die schon sein.


    Das einzige, was man bedenken muss, ist, das virtual-Funktionen nicht im Basiskonstruktor aufgerufen werden können, weil zu dem Zeitpunkt das abgeleitete Objekt noch nicht existiert.


    Lars

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!