Vererbung?
-
@lemon03 sagte in Vererbung?:
Und ich hänge wieder und immer wieder bei der Vererbung fest.
Aha. Aus dem ganzen Thread wird aber leider nicht klar, wo Deine Probleme damit liegen.
-
Ich glaube, wenn ich wenigstens meine Schwächen darin darlegen könnte, wirklich beschreiben könnte, was ich nicht verstehe, wär ich schon ein gutes Stück weiter.
Ich versteh das ganze Konzept von Vererbung nicht. Warum man das macht, wie man das macht. Ich kann ja nicht mal ein Beispiel schreiben, wo ich darlegen kann, was ich nicht verstehe.
-
Naja, worauf das hinausläuft, dürfte klar sein. Irgendwann wirst du eine Liste von GraphObjects haben. Damit kannst du unterschiedliche Implementierungen oder Varianten (Rect, Line) zusammen verwalten. Brauchst aber noch Polymorphie, damit sie was sinnvolles tun.
-
Ist vielleicht ein wenig unglücklich, das ich mit den obigen Beispielen angefangen habe.
Mir würde es schon reichen zu verstehen, wie eine Klasse A von Klasse B erbt. Klasse A soll aber Parameter haben, die in Klasse B verarbeitet werden.
-
Was heißt "verarbeitet"? Du musst dich schon präziser ausdrücken.
Wie du erbst, hast du in deinen Beispielen ja schon gesehen. Rect erbt von GraphObject.
Das kann auf die Member von GraphObject nicht zugreifen, weil sie private sind. Das könnte auf public oder protected Member zugreifen.
-
@mechanics sagte in Vererbung?:
Was heißt "verarbeitet"? Du musst dich schon präziser ausdrücken.
Wenn ich das nur könnte. Dann würden wir hier wahrscheinlich gar nicht schreiben müssen.
-
Schau dir vielleicht mal die Wikipedia Artikel zu dem Thema an. Ich hab keine Ahnung, wie gut die sind, aber ich denke, du solltest da erstmal etwas weg von der C++ Umsetzung, und einfach nur das Konzept verstehen. Wenn du weißt, was du damit machen kannst, ist das wie dann nicht mehr wirklich schwierig.
-
Solange Wurst und Wurstbrot nicht von Supermarkt erben ist alles OK
-
@lemon03 sagte in Vererbung?:
Mir würde es schon reichen zu verstehen, wie eine Klasse A von Klasse B erbt. Klasse A soll aber Parameter haben, die in Klasse B verarbeitet werden.
class Rect : public GraphObject
Also an dieser Stelle erbt Klasse A (Rect) von Klasse B (GraphObject).public
kann lässt sich als wie es erbt vorstellen.public
AFAIK ändert aber nichtpublic
,protected
oderprivate
in der Basisklasse (die Klasse von der geerbt wird).Falls das wie das Problem sein sollte, könnte es hilfreich sein, zu verstehen versuchen, was diese an der erwähnten Stelle zu suchen haben. (stellen, stehen, suchen, wähnen) :smiling_face_with_open_mouth_closed_eyes:
-
Jepp, danke. Freundlich von Euch
Irgendwann werde ich das knacken. Aber bis dahin mach ich erstmal ein wenig Kleinkram weiter.