Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Nocta hat geschrieben:Okay, das leuchtet so weit ein.
Ich muss mich nur von dem Gedanken trennen, dass die Namensräume wie in anderen Sprachen funktionieren und mir deine Regel
Die Namenräume funktionieren aber(größenteils) wie in anderen Sprachen.
Hier das Äquivalent in C zu deinem ersten Programm:
Hm noch eine andere Frage:
Ist es schlechter Stil, dieses Verhalten zu benutzen?
Also einfach innerhalb einer Funktion auf ein Objekt außerhalb der Funktion zuzugreifen und zu verändern?
Das würde es mir zB ersparen, aufwendig die Rückgabe einer Funktion zu verarbeiten und mit dieser Rückgabe Objekte entsprechend zu verändern, oder mir sonst was einfallen zu lassen.
@Nocta: Grundsätzlich würde ich aber schon sagen, dass das ein "code smell" ist.
Wobei wir vielleicht nochmal klären sollten was "auf ein Objekt ausserhalb der Funktion" bedeutet. Wo kommt das her? Wenn es als Argument übergeben wird, ist das was anderes als wenn der Zugriff fest in die Funktion einkodiert ist. Eine Funktion die Objekte entgegennimmt und deren Zustand verändert ist ziemlich normal. Solange das nicht an ein festes Exemplar gekoppelt ist, und das Verhalten dokumentiert oder offensichtlich ist, spricht da nichts gegen.
Ausser vielleicht, dass die Verantwortung der Änderung ganz oder teilweise beim Objekt liegen sollte. Das muss man aber für jeden konkreten Fall einzeln betrachten.
Okay danke, ich denke das beantwortet meine Frage
Das Objekt wird als Parameter übergeben und es ist ist relativ ersichtlich, dass das Objekt geändert werden soll.