Virtual template...
-
Da könnte4st du ja der TClass eine (abstrakte, aber template-freie) Basisklasse geben, die du dann auch an deine Familienmitglieder weitergibst.
(Aber ehrlich: So ganz klar ist mir weder dein Design noch der Sinn dahinter)
-
Müssen diese dann in die Template Klasse casten? Sonst kommen die ja nicht an die T var ran?
Was mir noch auffällt, ich glaub mein Problem ähnelt einer Gui, wenn ich in einer Gui einen Namen, einen Button usw drücken, so kann die Gui der Logik ja immer die passende Methode aufrufen, wie rufeA, rufeB usw, das erzeugt aber in der Logik dutzende minimaler Methoden auf, wenn die Logik aber eine Methode guiAntwort(); hat, so ruft die GUI nur diese Methode der Logik auf und übergibt dort entweder den String, oder das Alter als int oder weiß der geier was weiter, so hat man nur eine Methode und kann dort die trivialen Tätigkeiten sammeln.
Genau das hab ich vor, nur hat es nichts mit ner GUI zutun, aber das Prinzip is ähnlich. Und mit GUI m ruft Logik mein ich nicht, wenn der Button gedrückt wurde, darum kümmert sich die GUI, ich meine die events die von der GUI ausgehen werden an die Logik gesendet.
-
Seikilos schrieb:
Müssen diese dann in die Template Klasse casten? Sonst kommen die ja nicht an die T var ran?
Entweder das, oder sie überlassen die tatsächliche Verarbeitung der Klasse selber.
Was mir noch auffällt, ich glaub mein Problem ähnelt einer Gui, wenn ich in einer Gui einen Namen, einen Button usw drücken, so kann die Gui der Logik ja immer die passende Methode aufrufen, wie rufeA, rufeB usw, das erzeugt aber in der Logik dutzende minimaler Methoden auf, wenn die Logik aber eine Methode guiAntwort(); hat, so ruft die GUI nur diese Methode der Logik auf und übergibt dort entweder den String, oder das Alter als int oder weiß der geier was weiter, so hat man nur eine Methode und kann dort die trivialen Tätigkeiten sammeln.
Wenn ich mir die MFC Library ansehe, läuft das auch so ungefähr ab - man bekommt in erster Linie CWnd-Zeiger und muß dann entweder in den richtigen Typ casten oder die virtuellen Methoden der CWnd Klasse verwenden.