Was ist Eleganter??
-
ja die A und B sind nicht abwechseln gestaffelt, sonder ein feste anzahl A Module dann eine feste Anzahl B module!
Um ein down-cast komm ich nicht drum rum, da ich bei bestimmten funktionen die erweiteren parameter von A bzw. B nutzen wille nicht nur die basis parameter!
-
thordk schrieb:
aber muss dein System zeug wissen, mit was es da zu tun hat?...
Manchmal schon.
Ich würde anders herum sagen: WENN Dein System nicht unbedingt wissen muss, welcher Typ konkret vorliegt, DANN ist (Laufzeit-)Polymorphie das erste Mittel der Wahl.
Im konkreten Fall scheinen aber die Typen A und B nur unwesentlich miteinander verknüpft zu sein, so dass eine getrennte Handhabung sinnvoller ist.
struct Schule { vector<Schueler> schueler; vector<Raum> raeume; };... würde man ja auch nicht per Polymorphie in denselben vector pressen.

Gruß,
Simon2.