Aufrufen einer Child-Klasse-Methode beim Verarbeiten einer Liste von Parent-Klassenobjekten

Diese Frage scheint etwas häufig zu sein, aber ich habe nichts gefunden, als ich StackOverflow oder die Interwebs abgeschreckt habe.

Ich bin auf eine Methode in einer C ++ - Klasse gestoßen, die eine Liste von (zum Beispiel)Parent Objekte. Nehmen Sie für dieses Beispiel an, dass es zwei Klassen gibt, die von abgeleitet sindParent: Child1 undChild2.

Für jedes Objekt in der Liste prüft die Methode, ob das Objekt vom Typ istChild2 (über einIsOfType() Methode, die jede Klasse implementiert), und in diesem Fall ruft sie eine Methode auf, die nur von der KlasseChild2 Klasse.

Ist dies ein Problem, da die Listenverarbeitungsmethode nicht jedes Objekt gleich behandeln kann? Ich habe dies auch an anderen Orten gesehen, so dass es zu einem gewissen Grad eine gängige Praxis zu sein scheint.

Eine Möglichkeit könnte sein, das zu deklarierenChild2 Methode in derParent klasse damit alleParent Objekte implementieren es. In diesem Fall ist jedoch nur dieChild2 Klasse würde tatsächlich jedes Verhalten beim Überschreiben der Methode implementieren.

Ihre Gedanken? Danke im Voraus!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage