?
HansKlaus schrieb:
getter und setter hat man eben erfunden, um nicht einfach so von außen zugriff zu haben.
wenn man will, kann man seine daten ja auch direkt in den registern der cpu ablegen und damit arbeiten.
der sinn von oo ist ja, alles sauber zu strukturieren und durch getter und setter verhinderst du den zugriff auf daten, die nicht außerhalb der klasse benötigt werden. warum sich die arbeit machen, eine klasse zu erstellen, wenn du die dequeue auch direkt in die main schreiben und als parameter an die funktion übergeben kannst?
ja du kannst immer fehlerfreien code schreiben. das heißt, angeblich kann man mathematisch beweisen, dass es eben keinen fehlerfreien code gibt.
du nutzt bei beiden ein objekt und wenn derjenige der die klasse geschrieben hat die variable als "public" definiert hat ist sie auch für einen zugriff von "außen " da.
was soll daran nicht oop sein?
weil ich das ganze objekt nicht übergebe weil ich nur einen wert brauche?
warum packst du gemeinsam genutzte daten in ein objekt? jedenfalls verletzt du damit das prinzip der datenkapselung und zumindest in der prüfung gibt es für sowas 0 punkte. wir haben ja nicht umsonst ein ganzes semester mit oop verbracht, bevor wir überhaupt mit c++ angefangen haben.
wohin packst du dann gemeinsam genutze daten in globale variablen?
warum verletze ich damit das prinzip (welches konkret?) der datenkapselung?
oop besagt sogar das daten in objekten gekapselt werden sollen...
das ist ja nur eine frage der strukturierung, ich kann ein objekt basteln was nur für die daten übergabe ist (wie du ja schon erwähntest) ich kann auch einzelne werte eines objektes abfragen um darauf hin diese daten in anderen objekte zu nutzen wie soll das sonst gehen ?
getter & setter und ein public zugriff ist beides ein zugriff auf das objekt --> oop ... hast du denn das nicht in einem jahr oop gelernt? ...
außerdem schreibst du das gemeinsam genutze variablen nicht in objekten "sein sollen" aber wo dann?
oop ist datenkapselung ...
also alle daten soweit es geht und sinn macht zu kapseln...
wenn ich jedoch trozdem einen einzelnen wert brauche schreibe ich ja nicht gleich eine neue klasse ...
wenn das objekt im programmverlauf den wert verändert muss ich ihn von außen abfragen oder wie amchst du das?
Belli schrieb:
HelPeRss schrieb:
HansKlaus schrieb:
es macht eben einen unterschied, ob du schreibst
objTest2.setterZahl2 (objTest1.getterZahl ());
oder
objTest2.setterZahl2 (objTest1.zahl);
das hat imho nix mit schön oder nicht schön zu tun, sondern damit, dass man diesen ganzen oo-kram erfunden hat, um die fehlerquote zu verringern.
sonst brauchst du keine klassen und kannst die ganzen daten auch global in eine variablen.h knallen und direkt darauf zugreifen.
welchen unterschied macht der zugriff denn konkret?
Der zweite Zugriff funktioniert nur dann, wenn zahl public ist, was in Deinem Beispiel aber korrekterweise nicht der Fall ist.
ja das sag ich ja...
ups, da hast du recht, mein fehler .
aber ich hatte es ja auch eindeutig im text geschrieben... (auch wenns in meinem beispiel leider nicht so war...)
lg