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

Beitrag lesen

aber hier ist es doch klar, ein Rechner "hat ein" Display. Und hat ein bedeutet i.d.R. es ist eine Eigenschaft des Objektes (im gegensatz zu "ist ein" - ein GrünesDisplay ist ein AbstraktesDisplay).

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.

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)

Also muesste ich in Main erst ein entsprechendes Display-Objekt erzeugen und dieses dann an Rechner (entweder im Konstruktor, oder mit einer set-Methode) weitergeben, oder?

ja bzw. jein, du kannst das Display Objekt durchaus auch im Rechnerobjekt erzeugen.

Struppi.

--
Javascript ist toll (Perl auch!)