Struppi: C++: wie mache ich richtiges OO-Design?

Beitrag lesen

Heisst das, ich brauche im Rechner-Objekt nur eine Referenz vom Typ der Eltern-Klasse (AbstractDisplay) und kann dann darueber auf das entsprechende Display zugreifen, egal welcher Kind-Klasse es angehoert?

Nein, natürlich brauchst du ein konkretes Dispaly du kannst ja keine Abstrakte Klasse erzeugen.

Sorry, aber ich glaube du hast hier die Begriffe Objekt und Klasse verwechselt?

Ja tu ich. Ich meinte natürlich du kannst keine Objekte von abstrakten Klassen erzeugen.

Ob man keine Objekte von abstrakten Klassen erzeugen kann bin ich mir nicht so sicher, aber ich muss ja nur ein Objekt einer Kind-Klasse davon erzeugen. Dieses muesste ich dann, mit Hilfe einer Referenz vom Typ der (abstrakten) Elternklasse, ansprechen koennen.

genauso wird das gemacht, ein abstrakte Klasse zeichnet sich ja dadurch aus, dass es lediglich einen Rumpf darstellt, die davon abgeleitete Klasse füllt diesen. Aber du kannst eine abstrakte Klasse als Funktionsparameter benutzen.

Wenn ich das jetzt richtig verstanden habe brauche ich also nur eine gerichtete Assoziation von Rechner auf AbstractDisplay.

Da ich überwiegend in JS und Perl programmiere, bin ich nicht so fit in abstrakten Klassen, da diese dort nicht existieren. Aber ich denke theoretisch, ja. Du brauchst ein Objekt auf eine abstraktes Display, dass dann z.b. mit setDisplayType( typ ) konkretisiert würde (was, soweit ich das weiß, einer Factory entsprechen würde)

Oder ich erzeuge einfach das entsprechende Kind-Objekt in main() und speichere eine Referenz darauf im Rechner-Objekt (in einer Referenz vom typ AbstractDisplay mit einer set-Methode).

Das hat Johannes ja auch so beschrieben.

Struppi.

--
Javascript ist toll (Perl auch!)