P
AntonC++ schrieb:
Wenn ein Kondensator Objekt erstelle soll es ja das Attribut "Einheit" besitzen. Dementsprechend hat es dieses, wie entscheide ich ob dieses direkt oder indirekt ist?
Mit direkt/indirekt meine ich, ob es das Attribut des ondensators ist, oder ob es ein Attribut einer Elternklasse ist. Das Attribut Einheit ist ein Attribut von Bauteil, und da Kondensator von Bauteil erbt, ist Bauteil ein Teil von Kondensator. Damit hat Kondensator indirekt über Bauteil auch ein Einheit-Attribut. Das ist eine grunlegende Eigenschaft der Vererbung: Vererbung bedeutet "ist-ein"-Beziehung, d.h. ein Kondensator ist ein Bauteil - und hat daher logischerweise alle Eigenschaften (Attribute) eines Bauteils.
- Welche Möglichkeiten gibt es innerhalb eines Kondensator-Objektes, auf die Attribute des Baustein-Elternobjektes zuzugreifen?
außer mit dem Konstruktor kann ich auch mit methoden auf die Attribute zugreifen
Du kannst mit dem Konstruktor nicht von außen auf das Objekt zugreifen. Das Objekt wird durch den Konstruktor erst erzeugt. Du kannst über die Parameter des Konstruktors aber beeinflussen, wie er die Attribute initialisiert.
Greife ich nicht auf die Attribute zu indem ich das Objekt erstelle und innerhalb der Klammern "Werte" angebe? Bei dieser Frage steh ich grad sehr auf dem Schlauch.
Mit "in den Klammern Werte angeben" meinst du vermutlich die Initialisierungsliste - damit initislisierst du die Attribute, d.h. legst fest wie sie erzeugt werde. Zugreifen kannst du auf die Attribute von außen über die öffentlichen Methoden, und im Kondensator kannst du auf die protected Attribute des Bauteil-Objektes zugreifen, das im jeweiligen Kondensator-Objekt "eingebettet" ist.
- Welche Möglichkeiten gibt es, von außerhalb auf das Baustein-Elternobjekt (und seine Attribute) eines Kondensator-Objektes zuzugreifen?
Muss zugeben das ich gerade keinen Durchblick hab...
Wie oben beschrieben ist ein Kondensator auch ein Bauteil, das bedeutet in C++, dass jedes Kondenator-Objekt ein bauteil-Unterobjekt besitzt. Das sollte im Buch deiner Wahl aber auch erklärt sein.
Nun vielleicht eine Grundlegen Frage:
Ich habe die Bauteil-Klasse, diese übergibt mir ihre Daten auf meine Kondensator-Klasse.
Nein, nicht so wirklich. Siehe oben...
Zugriff habe ich auf protected und public, und privat nur eingeschränkt.
Nein. Auf privat hast du überhat keinen Zugriff.
Hoffe, das macht es etwas klarer