Wozu braucht man in C++ noch "Setter-Funktionen", wenn man einen parametrisierten Konstruktor anlegen kann?

... komplette Frage anzeigen

4 Antworten

Um nachträglich Werte des Objektes ändern zu können.


Der Vorteil der ganzen Objektorientierung kommt erst dann zum Tragen, wenn man eine komplexe Vererbungshierarchie aufbaut.

Bei den ganzen didaktischen Beispielen, die ihr so in Schule und Studium lernt, erschließt sich manchmal die Notwendigkeit dieses ganzen set, get, construct und destruct Krempels nicht.

Ist es ja auch eigentlich nicht. Ich meine notwendig.

Aber je größer die ObjektHierarchie, umso attraktiver und gewinnbringender wird deren Verwendung.

Bis es irgendwann mal nicht mehr ohne geht.

Antwort bewerten Vielen Dank für Deine Bewertung

braucht man nicht. du kannst auf member variable direkt zugreifen wenn du sie als public deklarierst.

es gab aber mal einen religionsstreit, wo die eine glaubensrichting das als unanständig erklärt hat und die verwendung von setter und getter als ein muss.

mein steak mag ich englisch.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von JupStrunk
30.08.2015, 17:55

<klugscheiss>
dann kannst Du auf Klassen auch ganz verzichten und mit Structs arbeiten... :D
</klugscheiss>

2
Kommentar von Omnivore01
30.08.2015, 21:04

es gab aber mal einen religionsstreit, wo die eine glaubensrichting das als unanständig erklärt hat und die verwendung von setter und getter als ein muss.

Das ist auch unanständig! Wie sonst will man denn bitteschön eine Methode zum setzen von LängeInCm hinterlegen, wenn intern mit Metern gearbeitet wird?

Setter-Funktionen sehen doch nicht immer so aus

setWert(int wert)
{
this.wert = wert;
}

Da gibt es doch viel komplexere Setter

0

Wie willst du denn an einem Objekt nachträglich etwas ändern, wenn du keine Setter-Funktionen hast? Oder bleiben deine Objekte nach der Instanzierung immer gleich?

Antwort bewerten Vielen Dank für Deine Bewertung

vielleicht, damit man Attribute später abfragen und ändern kann !?!?!

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?