Avatar ·

Warum es in C++ besser ist, Objekte per Zeiger zu übergeben, statt per Wert?

Hallo zusammen! Ich habe gerade angefangen, C++ nach Java zu lernen, und habe ein Problem mit Zeigern. In Java, wenn ich `MyClass obj = new MyClass()` schreibe, arbeite ich immer mit einer Referenz auf das Objekt. Aber in C++ kann ich sowohl `MyClass obj;` als auch `MyClass* obj = new MyClass();` schreiben. Und hier bin ich verwirrt. Angenommen, ich habe eine Funktion, die ein Objekt nimmt und etwas damit macht: ```cpp void processData(MyClass data) { // ändern data data.setValue(42); } int main() { MyClass myObj; myObj.setValue(10); processData(myObj); // myObj.getValue() ist immer noch 10, nicht 42! Warum? return 0; } ``` Ich erwartete, dass sich der Wert nach dem Aufruf von `processData` ändert, aber das geschah nicht. Ich musste auf Zeiger umschreiben: ```cpp void processData(MyClass* data) { data->setValue(42); } int main() { MyClass* myObj = new MyClass(); myObj->setValue(10); processData(myObj); // Jetzt ist myObj->getValue() == 42 delete myObj; retu