Objektorientierte Programmierung - Methodenaufruf
-
@manni66 Nein ich meinte nicht, dass der Konstruktor get macht, sondern dass der im Endeffekt beide einen Zugriff auf private deklarierte Attribute erlauben. Und wo da wirklich der Unterschied ist.
Ja ich hab öfter gelesen, dass getter und setter relativ unnötig sind.. Leider müssen wir das auch können und der Prof definiert zu jeder klasse immer die getter und setter
-
@manni66 Was genau meinst du jetzt damit
also ich brauch ja für den Aufrufer 5 Argumente, oder nicht? Und die sind hier alle gesetzt... aber liegt es eventuell an der Methode?
-
@mmm_1482_ sagte in Objektorientierte Programmierung - Methodenaufruf:
Und wo da wirklich der Unterschied ist.
Ich habe nicht den Eindruck, dass du über die Frage ernsthaft nachgedacht hast.
-
@mmm_1482_ sagte in Objektorientierte Programmierung - Methodenaufruf:
Was genau meinst du jetzt damit
Du sollst die Fehlermeldung zeigen.
-
@manni66 "Keine Instanz des Konstruktors ""Auto::Auto"" stimmen mit der Argumentliste überein.
Darumhin habe ich einfach nur den dazukommenden Wert der abgeleitetenklasse gesetzt:
Auto p1={5};
Dann war zwar die Fehlermeldung weg, aber dann kommt folgende Fehlermeldung:
"Verweis auf nicht aufgelöste extrenes Symbol "public:_thiscall Fahrzeug::Fahrzeug (void)" (?? 0Fahrzeug@.......)"
-
@mmm_1482_ Warum hat der Konstruktor von Auto nur einen Parameter? Warum wird der Konstruktior von Fahrzeug nicht ausgerufen?
-
@manni66
also so gut es ging eben.
Konstruktoren sind zur erzeugung und Initialisierung von neuen Objekten zuständig. Da durch die Deklaration von private auf die Attribute kein Zugriff außerhalb der Klasse Möglich ist und man somit ohne einen Konstruktor keine neuen Objekte erzeugen und initialisieren kann.
Und getter und setter (so wurde gesagt) ist für einen kontrollierten Zugriff auf private Attribute, damit man dort die Attribute auch nutzen kann.
Aber irgendwie ist das für mich dasselbe
-
@mmm_1482_ sagte in Objektorientierte Programmierung - Methodenaufruf:
Aber irgendwie ist das für mich dasselbe
Das meinte ich mit nicht ernsthaft nachgedacht!
std::cout << fahrezeug.get_plaetze();
Wie geht das mit einem Konstruktor?
-
@manni66 weil doch eigentlich nur das Neue Attribut plaetze dazu gekommen ist. Muss ich die Attribute der Basisklasse auch wieder einfügen? ....
-
@mmm_1482_ sagte in Objektorientierte Programmierung - Methodenaufruf:
Muss ich die Attribute der Basisklasse auch wieder einfügen?
Natürlich. Du solltest dein Lernmaterial drimgend noch einmal durchgehen.
-
@manni66 hmm okay verstehe.. mit getter kann man werte ausgeben und mit konstruktoren nur Objekte erzeugen und initialisieren?
Okay hab jetzt nochmal die Unterlagen durchgeschaut und tatsächlich.. ich hab die seite irgendwie übersehen.Danke